function f1(){ var n=999; nAdd=function(){n+=1} function f2(){ alert(n); } return f2; } var result=f1(); result(); // 999 nAdd(); result(); // 1000在這段代碼中,result()它一共運(yùn)行了兩次,第一次的值是999,第二次的值是1000。這證明了,函數(shù)f1中的局部變量n一直保存在內(nèi)存中,并沒有在f1調(diào)用后被自動清除。為什么會這樣呢?尤其是第二次,為何輸出的不是999呢?nAdd=function(){n+=1}又起到了什么作用呢?
javascript關(guān)于閉包的面試題
慕姐4208626
2018-08-03 17:41:23