javaScript闭包

var funcList = [];

for(var i=0; i<3; i++) {
  funcList.push((function() {
    return function() { console.log(i) };  // 此时引用全局变量i
  })());
}
                
for(var j=0; j<3; j++){
    funcList[j]();
}

输出结果:3 3 3

var funcList = [];

for(var i=0; i<3; i++) {
  funcList.push((function(a) {
    return function() { console.log(a) };   // 此时引用局部变量a
  })(i));
}
                
for(var j=0; j<3; j++){
    funcList[j]();
}

输出结果:0 1 2

你可能感兴趣的:(javaScript闭包)