【发布时间】:2013-05-06 02:03:20
【问题描述】:
看看这段代码:
var arr = new Array();
for (var i = 0; i < 10; i++) {
arr[i] = {
func:function() {
console.log(i);
}
}
}
arr[0].func();
我对此感到困惑,因为我认为这会起作用。我基本上希望数组中的每个对象都打印创建函数时赋予它的值。
现在当我调用func() 时,它会在控制台中打印 10。有没有办法让它打印0, 1, 2, 3, 4, 5, 6, 7, 8, 9?谢谢!
【问题讨论】:
-
是的,这是一个闭包问题。
-
请,请,将其作为副本关闭..
标签: javascript function variables