了解使用for循环的JavaScript闭包

时间:2018-09-26 12:58:02

标签: javascript closures

我已经阅读了一些有关闭包的信息,但是当我尝试编写闭包时完全不同。

这是看似愚蠢的代码

function funcInArray(i){
  var f = function(){
    var j = i;
    console.log(j);
  }
  f();
}

var items=[]
for (var i = 0; i < 5; i++){
    items.push( function(){funcInArray(i)} )
}

items[0](); //shows '5', while I expect it to be '0'

我希望items[0]()显示0items[1]()显示1,依此类推。

我的想法是,在每次迭代中,我都可以复制i的值并创建另一个局部变量。但是我对闭包并不熟悉,所以这段代码是我尝试过的。

0 个答案:

没有答案