Anonyme selbstausführende Funktion: eine Funktion ohne Methodennamen, Abschluss: Ein Abschluss bezieht sich auf eine Funktion, die das Recht hat, auf eine andere Funktionsbereichsvariable zuzugreifen. In diesem Artikel wird hauptsächlich die anonyme Selbstausführung von js ausführlich erläutert Funktionsbeispiele, in der Hoffnung, allen zu helfen.
Ich habe einen Fall aus dem Internet gefunden, in dem eine for-Schleife, eine anonyme selbstausführende Funktion und setTimeout verwendet wurden.
var value1 =0,value2=0,value3=0;for(var i =1;i<=2;i++){ var i2 = i; console.log('i2==>',i2); (function(){ var i3 = i; console.log('i3==>',i3); setTimeout(function(){ console.log('i==>',i); console.log('i2==>',i2); console.log('i3==>',i3); value1 +=i; value2 +=i2; value3 +=i3; },1); })(); } setTimeout(function(){ console.log(value1,value2,value3); },100)
//输出结果i2==> 1i3==> 1i2==> 2i3==> 2i==> 3i2==> 2i3==> 1i==> 3i2==> 2i3==> 26 4 3
(function () { /* code */ } ()); // 推荐(function () { /* code */ })(); ~function () { /* code */ }(); +function () { /* code */ }(); !function () { /* code */ }(); void function () { /* code */ }();
(function(){//自执行函数 var i3 = i; console.log('i3==>',i3); setTimeout(function(){//闭包 console.log('i==>',i); console.log('i2==>',i2); console.log('i3==>',i3); value1 +=i; value2 +=i2; value3 +=i3; },1); })();
Die Variablen in der selbstausführenden Funktion werden entsprechend den Eigenschaften des Abschlusses aufgerufen Die Schleife wird jedes Mal aufgerufen, wenn verschiedene Werte der Schleife an den Abschluss übergeben werden.
for (语句 1; 语句 2; 语句 3) { ... }
Analysiert anhand des folgenden Falls:Anweisung 1. Ausführung 2 bevor die Schleife (Codeblock) startet Definition Bedingungen für die Ausführung der Schleife (Codeblock)
Anweisung 3 Ausführen, nachdem die Schleife (Codeblock) ausgeführt wurde
for(var i=1;i<3;i++){ console.log(i); setTimeout(function(){ console.log('i===>',i); },100); }//输出12i===> 3i===> 3
Beim zweiten Mal wird i2=2;i3=2; in ähnlicher Weise auch im Abschluss gespeichert und i2 überschrieben.
Zu diesem Zeitpunkt endet die for-Schleifenausführung und das setTimeout Zu diesem Zeitpunkt beginnt die Ausführung der for-Schleife und die letzte Anweisung „i++“ wird ausgeführt, sodass sie zu diesem Zeitpunkt 3 und nicht 2 ist und i2 außerhalb des Abschlusses keine unterschiedlichen Zustände speichert kann nur überschrieben werden, während i3 im Abschluss jeden Wert im Speicher zwischenspeichert, um den Status beizubehalten, daher sind die Werte in setTimeout alle 3, i2 ist 2 und i3 ist der Wert jedes Zyklus
Vorteil 2: Erste Schritte mit dem WeChat-Applet. Ein vollständiger Satz detaillierter Video-Tutorials mit tatsächlichen Kämpfen: https://www.jianshu.com/p/e8197d4d9880
Detaillierte Erläuterung der selbstausführenden JavaScript-Funktionen und jQuery-Erweiterungsmethoden
Selbstausführende JavaScript-Funktionen und jQuery-Erweiterungsmethoden
Selbstausführende Funktionen in js-Funktionen
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Beispiele für anonyme selbstausführende js-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!