为什么结果是3不是2呢?

function F(){
    var arr=[],i;
    for(i=0;i<3;i++){
        arr[i]=function(){
            return i;
        };
    }
    return arr;
}

arr[0]();//3
arr[1]();//3
arr[2]();//3
阅读 801
评论
    4 个回答
    • 142

    图片描述

    此题用断点方式很容易就看出来了,其实就是函数执行时机的问题,函数是在调用时才执行,循环执行完后,i=3,再调用数组内的函数时,i只能为3.

      相似问题
      推荐文章