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];
你可以试着找到下面画红色横线的地方:
然后改成
document.write(j);
……
这个问题涉及到闭包和立即执行函数这两个知识点。
热门标签: