我有一个关于 Javascript 闭包的简单问题:
给出了以下函数:
function outside() {
var out = 0;
function inside() {
out +=1;
}
return inside;
}
var ref = outside();
ref();
ref();
如果我调用该函数两次,out
等于 2。
为什么是out
没有被语句覆盖?
var out = 0;
最佳答案
语句 var out = 0
不在 outside()
返回的函数内部。它仅在您调用 outside()
时运行,而不是在您调用 ref()
时运行(与 inside()
相同)。
关于JavaScript 闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25344420/