javascript - 有关闭包问题。
本文介绍了javascript - 有关闭包问题。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
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吗??
解决方案
每次调用 outer()
都会产生一个新的作用域,所以 result1
和 result2
所对应的 n
是不一样的。
这篇关于javascript - 有关闭包问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文