下面的代码输出多少?修改代码让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
作者:Maggie_77
链接:https://www.jianshu.com/p/719e225962a0
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。