根据我的理解,在ES6中我们可以用两种方式定义全局变量
var global1 = '1'; // CASE 1
在这种情况下,“global1”被设置为DOM窗口对象的属性,因此window.global1将打印“1”。
let global2 = '2'; // CASE 2
在这种情况下,“global2”未设置为DOM窗口对象的属性,因此window.global2将打印undefined。
我的问题是如何在ES5的情况下实现案例2.
答案 0 :(得分:0)
你做不到。在ES6中是可能的,因为let
和const
声明存储在它们自己的全局环境中,而不是绑定到全局对象。如果您正在使用ES5,则该机制不存在。
但是,在这两种方法中,通常全局变量在JS代码库中都不受欢迎。理想情况下,您希望将模块系统与Webpack一起使用,以捆绑您的代码,以便每个文件都有自己的范围,并将事物与显式导入和导出相关联。