无论您身在何处,都可以始终将变量分配给
window.MyClass =whatever(
global.MyClass用于nodejs),并从应用程序中的任何其他文件访问这些值。但是,这并非始终是在应用程序中全局共享数据的最佳方法。nodejs(或ES6中的AMD)中的模块加载器接受您导出的所有内容并将其缓存。假设您有一个类似的文件:
MyModule.js:
class MyClass { constructor() { this.someData = 55; }}export default (new MyClass);现在,无论何时我们从其他地方需要此文件,都总是得到的SAME实例
MyClass。这表示:
file1.js:
import MyClass from './MyModule'MyClass.someData = 100;
file2.js:
import MyClass from './MyModule'console.log(MyClass.someData);
这称为单例模式,我们在整个应用程序中传递您的类的一个常见实例。因此,通过这种方式,我们可以
MyClass从不同的文件访问的相同实例,而不会污染全局范围(我们避免进行分配
global.MyClass但要实现相同的功能)。



