猿问

为什么结果是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


长风秋雁
浏览 472回答 1
1回答

喵喔喔

for(i=0;i<3;i++){循环体}执行过程是赋初值0,然后执行判断语句i<3,为true的话,执行循环体,循环体执行完之后执行i++;所以当i执行到2的时候,i<3为true,执行循环体,然后i++,此时i等于3,然后判断i<3,判断为false,不执行循环体,退出循环,此时i=3;
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答