Posted in Javascript onApril 30, 2014
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闭包入门示例
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@