我目前无法理解以下Javascript代码,经过搜索后我仍然无法弄明白。我已经包含了下面的功能
function buildFunctions(){
var arr = [];
for(var i = 0; i < 3; i++){
arr.push(function(){
console.log(i);
})
}
return arr;
}
var fs = buildFunctions();
fs[0]();
fs[1]();
fs[2]();
问题:有人可以帮助我理解为什么下面的代码产生所有3而不是0,1,2?
我真的很想明白这里到底发生了什么,但我不明白为什么这些功能不能输出0,1,2