function foo(x) { var tmp = 3; return function (y) { alert(x + y + (++tmp)); }}var bar = foo(2); // bar 現在是一個閉包bar(10);上面的腳本最終也會alert 16,因為雖然bar不直接處于foo的內部作用域,但bar還是能訪問x和tmp?! 〉?,由于tmp仍存在于bar閉包的內部,所以它還是會自加1,而且你每次調用bar時它都會自加1.不理解為什么會每次調用都加1,求大神解釋
JS閉包問題
開滿天機
2018-12-12 13:13:43