Was ist das?

kaeseohnekaese

Grünschnabel
Hallo,

ich frage mich so mit der Weile immer öfter, was folgendes bedeuted:

Code:
(function(){
  // hier der irgendein code ...
})

Schon mal danke im Voraus
kaeseohnekaese
 
Hi und Willkommen bei tutorials.de,

statt Code einfach so hinzuschreiben kann man ihn in eine Funktion "packen",
die im Normalfall auch einen Namen hat:
Javascript:
meineFunktion = function() {
    //irgendein Code, beliebig viel
}
(nur eine von mehreren möglichen Schreibweisen).

Der Unterschied zum Direkt-Code ist:
a) Es wird nicht einfach so ausgeführt, wie es bei Code außerhalb von Funktionen passiert.
b) Man kann dann mit
Javascript:
meineFunktion();
den ganzen Code, der oben in der Funktion drin ist, ausführen.
Auch mehrmals an verschiedenen Stellen, ohne den ganzen Code immer rein zu kopieren.

Das ganze Thema, was man mit Funktionen machen kann,
ist noch um einiges umfangreicher.
Zu den grundlegenen Sachen gehören zB.:

Parameter:
Statt nur den selben Code unverändert öfter auszuführen
kann man ih von Werten/Variablen abhängig machen,
die bei jedem Aufruf anders sind.
Javascript:
meineFunktion = function(zahl) {
    alert("Die Zahl ist: " + zahl);

    if((zahl % 2) == 0)
        alert("Es ist eine gerade Zahl");
}

//Irgendwo anders:
meineFunktion(1); //Ausgabe: Die Zahl ist 1
meineFunktion(990); //Zahl ist 990 und gerade noch dazu
meineFunktion(eineVariable); //je nachdem, was in eineVariable drin ist
...

Returnwert:
Die Funktion gibt (zusätzlich zum anderen Inhalt) irgendeine Zahl/String...
zur aufrufenden Stelle zurück, dort kann das zB. in eine Variable gespeichert werden.
Zurückgegeben können zB. Statuswerte (0=OK, 1=Fehler...), Rechenergebnisse usw.
Javascript:
malvier = function(zahl) {
    return (zahl * 4);
}

//Irgendwo anders:
eineVariable = malvier(2);
//eineVariable ist 8
alert("100 mal 4 ist: " + malvier(100));
...
usw...
 
Ich glaube sheel hat alles erklärt, außer den von dir geposteten Code.

Ich denke du meintest das

Javascript:
(function(){
  // hier der irgendein code ...
}());

oder auch

Javascript:
(function(){
  // hier der irgendein code ...
})();

oder auch

Javascript:
!(function(){
  // hier der irgendein code ...
});

Hier ein guter Artikel dazu http://benalman.com/news/2010/11/immediately-invoked-function-expression/

Im Prinzip eine anonyme Funktion, die sofort nach der Deklarierung auch ausgeführt wird. Warum? Um einen neuen Scope zu haben und mit den Variablen nicht den globalen Scope zu verschmutzen.
 

Neue Beiträge

Zurück