functionf1(){ varn=999; nAdd=function(){ n+=1 }; functionf2(){ alert(n); } returnf2; } varresult1=f1();varresult2=f1(); result1();//999result2();//999 nAdd(); result1();//是999而不是1000,這是為何呢?result2();//1000哪位大神可以解釋下?還有如果以nAdd=function(){ n+=1 };這種形式在函數(shù)內(nèi)定義了一個全局變量,這個全局變量也可以訪問n嗎?不是全局變量不能訪問函數(shù)內(nèi)的變量嗎?還有我記得有書上面說的是函數(shù)的作用域不是是取決于函數(shù)定義的時候而不是調(diào)用的時候的作用域嗎?這個全局變量nAdd不就是相當(dāng)于定義的時候是全局嗎?所以不應(yīng)該不能訪問n嗎?這一塊一直都不太懂,希望哪位大神可以教教我!謝謝
求助關(guān)于閉包和提升
慕的地6264312
2019-04-19 16:29:42