是不是说如果闭包返回一个数组只能取到数组的最后一个值?
高程书上看到这句话不太理解 应该如何理解呢?
function createFunctions () {
var result = new Array();
for (var i = 0; i < 10; i++) {
result[i] = function () {
return i;
}
}
return result;
}
var funcArray = createFunctions();
for (let func of funcArray) {
console.log(func())
}
这样写是不是result[i]中存放的是10个i而非数值
为什么将例子改成
result[i] = function (num) {
return function() {
return num;
};
}(i);
就可以得到正确结果 是不是此时的result数组存放的是一个立即执行的函数返回的值?
是这样理解的吗?
相关分类