下面的代码输出多少?修改代码让fnArri 输出 i。使用两种以上的方法
var fnArr = [];
for (var i = 0; i < 10; i ++) {
fnArr[i] = function(){
return i;
};
}
console.log( fnArr[3]() ); //10
实现:
方法一:
var fnArr = [];
for (var i = 0; i < 10; i ++) {
fnArr[i] = (function(){
var n = i;
return function(){
return n;
}
})();
}
console.log( fnArr[3]() ); //3
方法二:
var fnArr = [];
for (var i = 0; i < 10; i ++) {
(function(n){
fnArr[i]=function(){
return n;
}
})(i)
}
console.log( fnArr[3]() ); //3
方法三:
var fnArr = [];
for (var i =0 ; i<10; i++){
(function(){
var n = i;
fnArr[i]= function(){
return n;
}
})()
}
console.log( fnArr[3]() ); //3
网友评论