IIFE in JavaScript: Was sind sofort aufgerufene Funktionsausdrücke?

Funktionsanweisung

Eine mit einer Funktionsdeklaration erstellte Funktion ist ein Funktionsobjekt und verfügt über alle Eigenschaften, Methoden und Verhaltensweisen von Funktionsobjekten. Beispiel:

 function statement(item){ console.log('Function statement example '+ item); }

Funktionsausdruck

Ein Funktionsausdruck ähnelt der Funktionsanweisung, außer dass der Funktionsname weggelassen werden kann, um anonyme Funktionen zu erstellen. Beispiel:

 var expression = function (item){ console.log('Function expression example '+ item); }

Sofort aufgerufene Funktionsausdrücke

Sobald eine Funktion erstellt wurde, die sie selbst aufruft, muss sie nicht explizit aufgerufen werden. Im folgenden Beispiel speichert die Variable iife eine Zeichenfolge, die von der Funktionsausführung zurückgegeben wird.

 var iife = function (){ return 'Immediately Invoked Function Expressions(IIFEs) example '; }(); console.log(iife); // 'Immediately Invoked Function Expressions(IIFEs) example '

Die Aussage vor IIFE sollte immer mit a enden; oder es wird ein Fehler ausgelöst.

Schlechtes Beispiel :

var x = 2 //no semicolon, will throw error (function(y){ return x; })(x); //Uncaught TypeError: 2 is not a function

Warum sofort aufgerufene Funktionsausdrücke verwenden?

 (function(value){ var greet = 'Hello'; console.log(greet+ ' ' + value); })('IIFEs');

Wenn im obigen Beispiel die Javascript-Engine den obigen Code ausführt, wird ein globaler Ausführungskontext erstellt, wenn Code angezeigt wird, und ein Funktionsobjekt im Speicher für IIFE erstellt. Und wenn es online erreicht, 46aufgrund dessen die Funktion aufgerufen wird, wird im laufenden Betrieb ein neuer Ausführungskontext erstellt, und die Begrüßungsvariable geht in diesen Funktionsausführungskontext und nicht in den globalen Kontext. Dies macht ihn einzigartig. This ensures that code inside IIFE does not interfere with other code or be interfered by another codeund so ist Code sicher.

Mehr Informationen

  • Sofort aufgerufener Funktionsausdruck auf Wikipedia
  • Was macht das führende Semikolon in JavaScript-Bibliotheken?