console.log(i)在函数内部

时间:2017-03-01 13:20:04

标签: javascript function for-loop console.log


我有一个问题,我不知道为什么我拨打tab[4]()或任何其他号码< 0,9>控制台中的结果总是10。 我猜测i的结果是i

var tab = [];
for (var i = 0; i < 10; i++) {
    tab[i] = function(){
        console.log(i)
    }
}

2 个答案:

答案 0 :(得分:1)

尝试以下

&#13;
&#13;
var tab = [];
for (var i = 0; i < 10; i++) {
  tab[i] = (function(i) {
    return function() {
      console.log(i)
    }
  })(i);
}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

var tab = [];
for (var i = 0; i < 10; i++) {
  let a = i;
  tab[i] = function(){
      console.log(a);
  }
}
  
tab[1]();
tab[2]();