纵有疾风起
人生不言弃

JS闭包-三种方法实现fnArr[i]() 输出 i

下面的代码输出多少?修改代码让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

文章转载于:https://www.jianshu.com/p/719e225962a0

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » JS闭包-三种方法实现fnArr[i]() 输出 i
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录