A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 浮世散人 中级黑马   /  2017-3-30 22:50  /  1227 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

上面代码中,变量i是var声明的,在全局范围内都有效。所以每一次循环,新的i值都会覆盖旧值,导致最后输出的是最后一轮的i的值。而使用let则不会出现这个问题。

var a = [];
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 6

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马