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

请教各位大神一个简单的js问题

请教各位大神一个简单的js问题

有只小跳蛙 2018-10-12 14:10:23
小白请教各位大神,下面这段代码:var a = [];for (var i = 0; i < 10; i++) {   a[i] = function () {    console.log(i);   }; } a[6](); // 10a[6]()的输出结果为什么不是6?a[6]不是等于:a[6] = function () {        console.log(6);       };这样的话a[6]()输出应为6?
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

这道题靠闭包原理,利用闭包原理可以做到.面试新人经常会考到的题
在<<高级程序设计>>中讲闭包章节时,有提到,楼主可以去翻翻书,这样印象会深刻一些

var a = [];

for (var i = 0; i < 10; i++) {

  a[i] = (function(index){

    return function(){console.log(index)}

  })(i)

}

a[6](); // 6


查看完整回答
反对 回复 2018-11-22
  • 1 回答
  • 0 关注
  • 427 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信