猿问

关于javascript的小问题?

函数如下:

function test(){

     var  arr=[ ];

      for(var i=0; i<10; i++){

          (function(j){

              arr[j]=function(){

                   document.write(i

 }( i))

}

return arr;

}


const   myArr=test();

for(i=0;i<10;i++){

       myArr[i]();

}

这个输出结果是0-9


myArr[0];

myArr[1];

myArr[2];      这个结果都是10    为什么呢?

myArr[3];

myArr[4];


一只萌萌小番薯
浏览 586回答 1
1回答

哔哔one

你可以试着找到下面画红色横线的地方:然后改成document.write(j);……这个问题涉及到闭包和立即执行函数这两个知识点。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答