執(zhí)行say667()后,say667()閉包內(nèi)部變量會(huì)存在,而閉包內(nèi)部函數(shù)的內(nèi)部變量不會(huì)存在.使得Javascript的垃圾回收機(jī)制GC不會(huì)收回say667()所占用的資源,因?yàn)閟ay667()的內(nèi)部函數(shù)的執(zhí)行需要依賴say667()中的變量。這是對閉包作用的非常直白的描述.?function?say667()?{
????//?Local?variable?that?ends?up?within?closure
????var?num?=?666;
????var?sayAlert?=?function()?{?alert(num);?}
????num++;
????return?sayAlert;
}
?var?sayAlert?=?say667();
?sayAlert()//執(zhí)行結(jié)果應(yīng)該彈出的667
#程序員每日一題#【每天一道筆試題】 什么是閉包(closure),為什么要用它?
慕課網(wǎng)前端學(xué)習(xí)小組
2014-11-14 17:41:07