Heim  >  Artikel  >  Web-Frontend  >  Zusammenfassung der grundlegenden JavaScript-Kenntnisse (10) Abschlüsse und Funktionen zur sofortigen Ausführung

Zusammenfassung der grundlegenden JavaScript-Kenntnisse (10) Abschlüsse und Funktionen zur sofortigen Ausführung

php中世界最好的语言
php中世界最好的语言Original
2018-03-10 13:39:191278Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn