下面的代码输出多少?修改代码让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
原著是一个有趣的人,若有侵权,请通知删除
还没有人抢沙发呢~