Dieses Mal werde ich Ihnen eine Zusammenfassung der Grundkenntnisse von JavaScript geben. Es gibt insgesamt 10 Punkte für Abschlüsse und sofortige Ausführung Schauen Sie mal rein.
//例子function a() { function b(){ var bbb = 234; console.log(aaa) } var aaa = 123; return b; }var glob = 100;var demo = a(); demo();
Nachdem diese Funktion „return b“ ausgeführt hat, ist die Ausführung von Funktion a abgeschlossen und die AO von a wird zerstört. Funktion b wurde jedoch vor der Zerstörung gespeichert, also der Ausführungskontext von b existiert nicht.
So werden AO und Go von b gespeichert
Dies bildet einen Abschluss, der auch so gesagt werden kann: Die interne Funktion wird nach außen gespeichert, was muss einen Abschluss bilden
function a (){ var num = 100; function b(){ num ++; console.log(num); } return b; }var demo = a(); demo();//打印101demo();//打印102
Das Konzept des Abschlusses: Wenn die interne Funktion nach außen gespeichert wird, wird ein Abschluss generiert. Das Schließen führt dazu, dass die ursprüngliche Zielfernrohrkette nicht freigegeben wird, was zu Speicherlecks (Speicherbelegung) führt.
Speicherlecks: Zum Beispiel ... eine Tasse ... je mehr Wasser Sie hineingeben, desto mehr Je weniger Speicher, den Sie haben (aus dem gleichen Grund: Je mehr Speicher Sie belegen, desto weniger Speicher hat er)
Die Rolle des Abschlusses
Implementierung öffentlicher Variablen
Funktionsakkumulator
Kann Caching durchführen (Speicherstruktur)
Esser
Kann Kapselung und Attributprivatisierung realisieren
Person()
Modul Entwicklung zur Verhinderung der Verschmutzung globaler Variablen
1 Das obige Beispiel des Akkumulators wurde geschrieben
2. Caching (Speicherstruktur) kann durchgeführt werden
function test(){ var num = 100; function a(){ num ++; console.log(num); }; function b(){ num --; console.log(num); }; return [a,b] }var myArr = test(); myArr[0]();//打印101myArr[1]();//打印100 function eater(){ var food = ""; var obj ={ eat : function(){ console.log("i am eating" + food) }, push : function (myFood){ food = myFood; } } return obj; }var eater1 = eater(); eater1.push('banana'); eater1.eat();//打印出 i am eating banana
oben In diesem Beispiel habe ich nach eater1.push('banana') den Fuß = "" im Esser angegeben und ihn in food = "banana" geändert. Nachdem ich eater1.eat() ausgeführt habe, erhielt ich food = „banana“. Sie arbeiten alle mit demselben Verschluss, daher entspricht „I eat Banana“ einer impliziten Speicherstruktur
Kaufen Sie sich eine Grube, privatisieren Sie Attribute, ich werde es erklären, nachdem ich mit dem Schreiben des Objekts fertig bin, das Gleiche gilt für die modulare Entwicklung
sofort Ausführungsfunktion
Dieser Funktionstyp ist nicht deklariert und wird nach einmaliger Ausführung freigegeben. Geeignet für Initialisierungsarbeiten.
function a(){ }function b(){ }
Wenn diese beiden Funktionen nicht auf die Ausführung meines JavaScripts warten, werden diese beiden Funktionen nie freigegeben und warten immer darauf, ausgeführt zu werden.
Funktion: Funktion für die Initialisierungsfunktion
(function (aaa,bbb,ccc){ var a = 234; var b = 123; var c = a+b; console.log(c) return c}(1,2,3)) 执行完立即被销毁 // 怎么去接收他var num = (function (aaa,bbb,ccc){ var a = 234; var b = 123; var c = a+b; console.log(c) return c}(1,2,3)) 立即执行函数有两种写法 //第一种(function(){}());//w3c 建议第一种//第二种(function(){})(); 扩展 只有表达式才可以被执行符号执行 var test = function (){}()//也可以被执行+ function test(){}()//也可以被执行 以此类推- !号也可以function test(){ console.log(a+b+c+d)}(1,2,3,4)//不执行也不报错
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln zum Thema PHP chinesische Website!
Verwandte Lektüre:
Zusammenfassung der grundlegenden JavaScript-Kenntnisse (9) Umfang und Definition der Bereichskette
Grundlagen Zusammenfassung von JavaScript Wissen (8) Ausführungsprozess vor der Kompilierung
Zusammenfassung der grundlegenden JavaScript-Kenntnisse (7) Rekursion
Das obige ist der detaillierte Inhalt vonZusammenfassung der grundlegenden JavaScript-Kenntnisse (10) Abschlüsse und Funktionen zur sofortigen Ausführung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!