ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript クロージャ入門 例_基礎知識

JavaScript クロージャ入門 例_基礎知識

WBOY
WBOYオリジナル
2016-05-16 16:50:351160ブラウズ

1.

コードをコピーします コードは次のとおりです。

functionsay667(){
varnum=666;
varsayAlert=function(){alert(num);}
num ;
returnsayAlert;
}

varsayAlert=say667();
sayAlert();

2.

コードをコピーします コードは次のとおりです。

functionsetUpSomeGlobals(){
varnum=666;
gAlertNumber=function(){alert(num);}
gIncreaseNumber=function(){num ;}
gSetNumber=function(x){num=x;}
}

setUpSomeGlobals();//3 つのグローバル変数に値を割り当てます
gAlertNumber();//666
gIncreaseNumber();
gAlertNumber();//667
gSetNumber(12) );
gAlertNumber();//12

3.

コードをコピーします コードは次のとおりです:

functionbuildList(list) {
varresult=[];
for(vari=0;ivariiteml='item' list[i];
result.push(function() {alert( item '' list[i]);});
}
returnresult;
}

functiontestList(){
varfnlist=buildList([1,2,3]);
for(varj=0;jfnlist[j]() ;
}
}

4.

コードをコピーします コードは次のとおりです。

functionsayAlice(){
varsayAlert=function(){alert(alice);}
varalice='HelloAlice';
returnsayAlert;
}

varhelloAlice=sayAlice();
helloAlice();//HelloAlice

5.

コードをコピーします コードは次のとおりです。

functionnewClosure(someNum, someRef){
varnum=someNum;
varanArray=[1,2,3];
varref=someRef;
returnfunction(x){
num =x;
anArray。 Push(num );
alert('num:' num 'nanArray' anArray.toString() 'nref.someVar' ref.someVar);
}
}

closure1=newClosure(40,{someVar:'closure1'});
closure2=newClosure(1000,{someVar:'closure2'});

クロージャ 1(5);
クロージャ 2(-10);

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。