javascript闭包入门示例
javascript闭包入门示例
发布时间:2016-12-30 来源:查字典编辑
摘要:1.复制代码代码如下:functionsay667(){varnum=666;varsayAlert=function(){alert(nu...

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();//为三个全局变量赋值

gAlertNumber();//666

gIncreaseNumber();

gAlertNumber();//667

gSetNumber(12);

gAlertNumber();//12

3.

复制代码 代码如下:

functionbuildList(list){

varresult=[];

for(vari=0;i<list.length;i++){

variteml='item'+list[i];

result.push(function(){alert(item+''+list[i]);});

}

returnresult;

}

functiontestList(){

varfnlist=buildList([1,2,3]);

for(varj=0;j<fnlist.length;j++){

fnlist[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'});

closure1(5);

closure2(-10);

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类