Dieser Artikel stellt Ihnen die anonymen Funktionen in Javascript vor. Er hat einen gewissen Referenzwert. Ich hoffe, er wird Ihnen hilfreich sein.
Analyse:
1. Die sogenannte anonyme Funktion ist wörtlich genommen eine Funktion ohne Namen, die stattdessen () verwendet (Beachten Sie, dass es sich um die Klammern )
2. Definitionsform:
function (){
//to add codes that you want to add
}
Nach dem Login kopieren
3. Funktion der anonymen Funktion
(1) Im Vergleich zur Schließungsfunktion besteht der größte Effekt darin, nicht zu verschmutzen Sobald die Ausführung abgeschlossen ist, beansprucht der GC automatisch den Speicher zurück, was den wesentlichen Unterschied zur Abschlussfunktion darstellt. Ein Hauptmerkmal der Schließungsfunktion ist:
Variablen liegen im Speicher und werden nur freigegeben, wenn der Browser geschlossen wird.
function f1(){
var n=999;
nAdd=function(){n+=1}
function f2(){
alert(n);
}
return f2;
}
var result=f1();
result(); // 999
nAdd();
result(); // 1000
Nach dem Login kopieren
Im obigen Code ist das Ergebnis tatsächlich die Abschlussfunktion f2. Es wurde zweimal ausgeführt, beim ersten Mal war der Wert 999, beim zweiten Mal war der Wert 1000. Dies beweist, dass die lokale Variable n in der Funktion f1 immer im Speicher gespeichert ist und nach dem Aufruf von f1 nicht automatisch gelöscht wird.
Warum passiert das? Der Grund dafür ist, dass f1 die übergeordnete Funktion von f2 ist und f2 einer globalen Variablen zugewiesen ist, wodurch f2 immer im Speicher bleibt und die Existenz von f2 von f1 abhängt, sodass f1 immer im Speicher ist und nicht gelöscht wird Nach Abschluss des Anrufs wird es vom Garbage-Collection-Mechanismus recycelt.
Eine weitere erwähnenswerte Sache in diesem Code ist die Zeile „nAdd=function(){n+=1}“. Erstens wird das Schlüsselwort var nicht vor nAdd verwendet, daher ist nAdd eher eine globale Variable als lokale Variablen. Zweitens ist der Wert von nAdd eine anonyme Funktion, und diese
anonyme Funktion selbst ist auch ein Abschluss, sodass nAdd einem Setter entspricht, der lokale Variablen innerhalb der Funktion außerhalb der Funktion bearbeiten kann.
(2) Im Vergleich zu allgemeinen Funktionen wird keine Vorkompilierung durchgeführt.
function fuc() {
fuc1(); //foo被提到了作用域的最前面, 于是这里可以正常调用foo函数
fuc2(); //这里会报错bar是个undefined
function fuc1() {alert("foo()") }
var fuc2 = function () { alert("bar")};
}
Nach dem Login kopieren
Code:
Mehrere Ausdrücke anonymer Funktionen:
Modus 1: Funktionsliteral (Funktionsliteral)
Zuerst das Funktionsobjekt deklarieren und dann ausführen .
(function(){
// insert code here
})();
Nach dem Login kopieren
Modus 2: Prioritätsausdruck (Prioritätsausdruck)
Da JavaScript Ausdrücke in der Reihenfolge von innen nach außen ausführt, werden Klammern verwendet, um die Ausführung deklarierter Funktionen zu erzwingen.
(function(){
// insert code here
}());
Nach dem Login kopieren
Modus 3: Void-Operator (Void-Operator)
Verwenden Sie den Void-Operator, um einen einzelnen Operanden auszuführen.
void function(){
// insert code here
}();
Nach dem Login kopieren
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird. Weitere verwandte Tutorials finden Sie unter
JavaScript-Video-Tutorial!
Verwandte Empfehlungen:
JavaScript-Grafik-Tutorial
JavaScript-Online-Handbuch
Das obige ist der detaillierte Inhalt vonErklären Sie, was anonyme Funktionen in Javascript sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!