有关闭包问题。

function outer() {

    var n = 999;

    nAdd = function() { n++; };

    function fun() { return n; }

    return fun;

}


var result1 = outer();

var result2 = outer();

console.log(result1());//999

console.log(result2());//999

nAdd();

console.log(result1());//999

console.log(result2());//1000

不明白,,第三个输出不应该也是1000吗??

慕尼黑的夜晚无繁华
浏览 612回答 1
1回答

HUX布斯

每次调用 outer() 都会产生一个新的作用域,所以 result1 和 result2 所对应的 n 是不一样的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript