【发布时间】:2015-09-23 06:44:53
【问题描述】:
在阅读 ES 6 特性时,我发现 let 用于创建块作用域。这个link 对 ES6 特性和 let 语句有很好的解释。那么开发人员如何在旧版本的 ECMAScript(如 ES5)中创建这个block scopes。
以下代码sn-p解释let
var es = [];
for (var i = 0; i < 10; i++) {
let c = i;
es[i] = function () {
console.log("Upcoming edition of ECMAScript is ES" + c);
};
}
es[6](); // Upcoming edition of ECMAScript is ES6
ES5 中的等效代码是什么?
上面的代码 sn-p 没有let,输出10 为i,因为它在全局范围内。
var es = [];
for (var i = 0; i < 10; i++) {
es[i] = function () {
console.log("Upcoming edition of ECMAScript is ES" + i);
};
}
es[6](); // Upcoming edition of ECMAScript is ES10
link 在 ES5 中有 ES6 等价物,它建议将 IIFE 用于块作用域。但我不确定,如何在当前场景中使用 IIFE。
非常感谢任何帮助。
提前致谢。
【问题讨论】:
-
基本上你只需要创建一个匿名函数,并在那里使用
var
标签: javascript angularjs ecmascript-6 ecmascript-5