Heim > Web-Frontend > js-Tutorial > Hauptteil

Codebeispiele für Javascript-Abschlüsse

不言
Freigeben: 2019-03-05 13:51:50
nach vorne
2057 Leute haben es durchsucht

Dieser Artikel enthält Codebeispiele zu Javascript-Abschlüssen. Freunde in Not können darauf verweisen.

Abschluss

Wenn die innere Funktion nach außen gespeichert wird, wird ein Abschluss generiert. Das Schließen führt dazu, dass die ursprüngliche Bereichskette nicht freigegeben wird, was zu Speicherlecks führt

//内部的函数被返回到外部,必然形成闭包
function a(){
function b(){
var b = 234;
console.log(a);
}
var a = 123;
return b;
}
var demo = a();
demo(); // -->123
Nach dem Login kopieren
function test1(){
var num = 100;
function test2(){
num ++;
console.log(num);
}
return test2;
}
var demo1 = test1();
demo1();  //101
demo1();  //102
Nach dem Login kopieren
//
function test(){
            var arr = [];
            for(var i = 0; i < 10; i++){//当i = 10的时候循环停止
                arr[i] = function(){ //arr的每一位都是一个函数
                    console.log(i);//虽然函数已经定义,但未执行
                }
            }
            return arr;
        }
        var myArr = test();
        for(var i = 0; i < myArr.length; i++ ){
            myArr[i]();
        }
Nach dem Login kopieren

Wenn die letzte Funktion ausgeführt wird, wird i im AO des Tests aufgerufen

AO{
i = 10;
}
Nach dem Login kopieren

Lösung: Führen Sie die Funktion aus sofort

function test() {
            var arr = [];
            for(var i = 0; i < 10; i++) {
                (function(j) {
                    arr[j] = function() {
                        console.log(j);
                    }
                }(i))
            }
            return arr;
        }
        var myArr = test();
        for(var i = 0; i < myArr.length; i++) {
            myArr[i]();
        }
Nach dem Login kopieren

1. Öffentliche Variablen implementieren

zB: Funktionsakkumulator

function add(){
var count = 0;
function demo(){
count ++ ;
console.log(count);
}
return demo;
}
var counter = add();
counter();
Nach dem Login kopieren

2. Kann zwischengespeichert werden

zB:eater

function test2(){
var food = &#39;apple&#39;;
var obj = {
eatFood : function(){
if(food != ""){
console.log("I am eatting " + food);
food = &#39;&#39;;
}else{
console.log("There is nothing! empty!");
}
},
pushFood : function(myFood){
food = myFood;
}
}
return obj;
}
var obj = test2();
obj.eatFood();
obj.eatFood();
obj.pushFood(&#39;banana&#39;);
obj.eatFood();
Nach dem Login kopieren

3 .Kapselung und Attributprivatisierung können erreicht werden.

zB: Person();

Das obige ist der detaillierte Inhalt vonCodebeispiele für Javascript-Abschlüsse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage