为了账号安全,请及时绑定邮箱和手机立即绑定

循环里匿名函数的返回值问题

循环里匿名函数的返回值问题

梦里花落0921 2019-02-19 17:18:54
在循环中使用匿名函数时,匿名函数的返回值都是5,导致结果为arr=[5,5,5,5,5]function box(){    var arr = [];    for(var i=0;i<5;i++){        arr[i] = function(){            return i          };    };    return arr;};var b = box();for(var i=0;i<5;i++){    alert(b[i]());   };但如果我要得到结果arr = [0,1,2,3,4],我就得把i作为参数传进去并且自我执行function box(){    var arr = [];    for(var i=0;i<5;i++){        arr[i] = (function(i){            return i          })(i);    };    return arr;};var b = box();for(var i=0;i<5;i++){    alert(b[i]);   };请问这是怎么理解的,为什么直接返回i就只能得到i的最终值5?谢谢各位解答!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 369 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号