Kyl*_*ell 19 javascript scope hoisting ecmascript-6
据我了解,IIFE模式是一个解决ES5及以下无法创建块范围的事实.通过将所有内容包装在函数中并立即调用它,我们可以创建一个范围.
现在,let并且const将获得更多浏览器的支持,这是否减少了对IIFE模式之类的需求?
Ber*_*rgi 16
是的,只要块范围的声明(函数,let/ const/class)被广泛采用,块就会取代IEFE .你需要一个范围,例如关闭?这里有一个块,无论是循环体还是声明列表的一部分.
但是,仍有一种IEFE应用程序无法替代块:模块模式.块没有返回值,并且变更更高范围的变量是丑陋的,因此我们仍然会在创建需要私有状态的对象时看到函数表达式:
const example = (() => {
…
return …;
}());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2601 次 |
| 最近记录: |