在创建时,Typescript会在回调函数上获取值

时间:2013-06-03 08:46:51

标签: javascript typescript

如何获得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 ?

1 个答案:

答案 0 :(得分:1)

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

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

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