假设我有这个代码
var callbacks = {};
for (var i in mylist){
callbacks[i] = { callback: function(){ myFunction( myList[i].someProperty ); }};
}
上面的代码会导致这样的列表:
myList[0].property = "zero";
myList[1].property = "one";
像这样的结果:
callbacks[0].callback // -> returns myFunction("one"); WRONG!
callbacks[1].callback // -> returns myFunction("one");
有什么我可以做的(在for..in
循环中并且不改变我在匿名函数内部访问的事实myList[i].someProperty
)以确保myList[i].someProperty
在循环期间而不是在执行函数时分配的值?