Javascript闭包示例介绍
一复制代码代码如下所示:
functionsay667(){
Varnum = 666;
varsayalert =函数(){ alert(努姆);}
数字+;
returnsayalert;
}
varsayalert = say667();
SayAlert();
二
复制代码代码如下所示:
FunctionsetUpSomeGlobals(){
Varnum = 666;
galertnumber =函数(){ alert(努姆);}
gincreasenumber =函数(){数+ +;}
gsetnumber =函数(x){ Num = x;}
}
(setupsomeglobals) / /分配;三全局变量
galertnumber(); / / 666
GIncreaseNumber();
galertnumber(); / / 667
(12)gsetnumber;
galertnumber(); / / 12
三
复制代码代码如下所示:
functionbuildlist(列表){
varresult = { };
为(变量= 0;i < list.length;i++){
variteml = 'Item' +表{我};
result.push(函数(){ alert(项目++表{我});});
}
returnresult;
}
functiontestlist(){
varfnlist = buildlist({1,2,3});
对于(varj = 0;J < fnlist.length;j++){
fnlist {,}();
}
}
四
复制代码代码如下所示:
FunctionsayAlice(){
varsayalert =函数(){ alert(爱丽丝);}
varalice = 'helloalice;
returnsayalert;
}
varhelloalice = sayalice();
helloalice(); / / helloalice
五
复制代码代码如下所示:
FunctionnewClosure(somenum,someref){
somenum Varnum =;
varanarray = {1,2,3};
varref = someref;
回报函数(x){
x;
AnArray.push(努姆);
警报('num:+数字+ 一个+ anarray.tostring()+ref.somevar + ref.somevar);
}
}
closure1 = newclosure(40,{ somevar:'closure1});
closure2 = newclosure(1000,{ somevar:'closure2});
(5)closure1;
closure2(- 10);