0

如何获得 i 的当前值?

var array = [1, 2, 3];

for (var i = 0; i < array.length; i++)
{
   $(element).load("http://www.google.de", () => {
      console.log(i);
   }
}

Will return 2, 2, 2... How can i return 0, 1, 2 ?
4

1 回答 1

1

这是因为您i在 ajax 回调中使用了来自外部函数的闭包变量。对变量值所做的任何更改都将反映在回调方法中。

一种可能的方法是使用匿名函数来提供自定义闭包,如下所示

for (var i = 0; i < array.length; i++)
{
   (function(i){
   $(element).load("http://www.google.de", () => {
      console.log(i);
   }
   })(i)
}
于 2013-06-03T08:49:08.867 回答