下面的代码返回: 10 10 10 10 10 10 10....
如何产生以下输出? 0 1 2 3 4 5 6 7 8 9
这是我的代码:
function go() {
var procedures = [];
for (var i = 0; i < 10; i++) {
procedures[procedures.length] = function () {
alert("You are now " + i + " years old");
};
}
run_procs(procedures);
}
function run_procs(procs) {
for (var i = 0; i < procs.length; i++) {
procs[i]();
}
}
go();
请指导我,谢谢...
最佳答案
将其包装在自执行的匿名函数中
for (var i = 0; i < 10; i++) {
(function (i) {
procedures[procedures.length] = function () {
alert("You are now " + i + " years old");
}
})(i);
}
关于Javascript 闭包和 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29895263/