如何获得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 ?
答案 0 :(得分:1)
这是因为你在ajax回调中的外部函数中使用了一个闭包变量i
。变量值中所做的任何更改都将反映在回调方法中。
一种可能的方法是使用匿名函数提供自定义闭包,如下所示
for (var i = 0; i < array.length; i++)
{
(function(i){
$(element).load("http://www.google.de", () => {
console.log(i);
}
})(i)
}