function buildList(list){
var result=[];
for(var i=0;i<list.length;i++){
var item="item"+i;
result.push(function(){
alert(item+" "+list[i])
});
}
return result; //返回一个匿名函数数组
}
function testList(){
var fnlist=buildList([0,1,2]); //返回一个有三个匿名函数元素的数组
for(var i=0; i<fnlist.length;i++){ //fnlist数组的长度为3,
fnlist[i](); //我觉得此处应该是fnlist[0]():“item0 0”; fnlist[1]():“item1 1”; fnlist[2]():“item2 2”;
}
}
testList(); //实际结果是"item2 undefined" 3 times
不理解为什么最后弹出的结果是"item2 undefined" 3 times,我把自己的理解写在代码后面了。还请大神帮忙解释下这个代码块的执行情况
相关分类