【发布时间】:2018-05-02 12:26:19
【问题描述】:
我找到了很多解释这个问题的主题,关于如何使用 var 修复以下代码,比如这个 http://conceptf1.blogspot.com/2013/11/javascript-closures.html 或者这个JavaScript closure inside loops – simple practical example。
但我真的不明白为什么它在使用 var 时不起作用而在使用 let 时起作用。
var funcs = [];
for (var i = 0; i < 3; i++) { // let's create 3 functions
funcs[i] = function() { // and store them in funcs
console.log("My value: " + i); // each should log its value.
};
}
for (var j = 0; j < 3; j++) {
funcs[j](); // and now let's run each one to see
}
// outputs 3 3 3
我真的不知道......
【问题讨论】:
-
你的意思是“使用var时不工作而使用let时工作”?
-
我检查了所有其他重复项,我无法理解它们,只有下面的答案帮助我理解了这个问题。
标签: javascript loops closures var let