IIFE

Ein IIFE (Immediately Invoked Function Expression) ist ein Idiom, bei dem eine JavaScript-Funktion ausgeführt wird, sobald sie definiert ist. Es ist auch bekannt als selbst-aufrufende anonyme Funktion. Der Name IIFE wird von Ben Alman in seinem Blog gefördert.

js
// standard IIFE
(function () {
  // statements…
})();

// arrow function variant
(() => {
  // statements…
})();

// async IIFE
(async () => {
  // statements…
})();

Es enthält zwei Hauptteile:

  1. Ein Funktionsausdruck. Dieser muss normalerweise in Klammern eingeschlossen werden, um korrekt geparst zu werden.
  2. Das sofortige Aufrufen des Funktionsausdrucks. Argumente können bereitgestellt werden, wobei IIFEs ohne Argumente häufiger vorkommen.

IIFEs sind ein häufiges Muster, das verwendet wird, um eine beliebige Anzahl von Anweisungen in ihrem eigenen Gültigkeitsbereich auszuführen (und möglicherweise einen Wert zurückzugeben) an einem Ort, der einen einzelnen Ausdruck erfordert. Sie sind ähnlich wie, aber viel mächtiger als der Komma-Operator, der nur mehrere Ausdrücke ausführen kann und daher keine Möglichkeit bietet, lokale Variablen oder Kontrollflussanweisungen zu verwenden.

Verwendungszwecke von IIFEs umfassen:

  • Vermeidung der Verschmutzung des globalen Namensraums durch Erstellen eines neuen Gültigkeitsbereichs.
  • Erstellen eines neuen asynchronen Kontexts, um await in einem nicht-asynchronen Kontext zu verwenden.
  • Berechnung von Werten mit komplexer Logik, wie z.B. die Verwendung mehrerer Anweisungen als einzelner Ausdruck.

Für Codebeispiele siehe die Referenzseiten zu function expression und async function expression.

Siehe auch