Sofortige Funktionsausführung in JavaScript
Jetzt werden wir eine Technik besprechen, die es erlaubt, eine Funktion direkt an der Stelle ihrer Definition aufzurufen. Diese Konstruktion wird Immediately Invoked Function Expression (IIFE) genannt.
Schauen wir uns ein Beispiel an. Nehmen wir an, wir haben folgenden Funktionsausdruck:
let func = function() {
console.log('!');
};
func(); // gibt '!' aus
Lassen wir jetzt die Zuweisung unserer Funktion zu einer Variable weg und rufen sie sofort, "an Ort und Stelle", auf. Dafür setzen wir nach der Funktion runde Klammern:
+function() {
console.log('!'); // gibt '!' aus
}();
Die Anwesenheit des Pluszeichens ist in diesem Fall eine zwingende Voraussetzung, da die Funktion sonst zu einer Function Declaration würde, und diese kann man nicht an Ort und Stelle (und noch dazu ohne Namen) aufrufen. Natürlich kann anstelle des Pluszeichens beliebiges anderes stehen, - die Hauptsache ist, dass unsere Funktion ein Funktionsausdruck ist.
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
!function() {
console.log('!');
}();
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
function() {
console.log('!');
}();