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 };這種形式在函數內定義了一個全局變量,這個全局變量也可以訪問n嗎?不是全局變量不能訪問函數內的變量嗎?還有我記得有書上面說的是函數的作用域不是是取決于函數定義的時候而不是調用的時候的作用域嗎?這個全局變量nAdd不就是相當于定義的時候是全局嗎?所以不應該不能訪問n嗎?這一塊一直都不太懂,希望哪位大神可以教教我!謝謝
求助關于閉包和提升
慕的地6264312
2019-04-19 16:29:42