globalThis
是一个在JavaScript中用于访问全局作用域中的 this
值的属性,它提供了一个在所有JavaScript执行环境中都能稳定访问全局对象的标准方法。globalThis
被引入是为了统一不同环境下的全局对象访问方式,因为全局对象在不同环境中的名称可能不同:
- 在浏览器环境中,全局对象通常是
window
。 - 在Node.js环境中,全局对象是
global
。 - 在Web Workers中,使用
self
。 - 在某些其他环境或沙箱环境中,可能还有其他名称。
使用 globalThis
可以避免因环境差异而导致的代码编写复杂性,提高代码的可移植性。无论代码在什么环境下运行,globalThis
总是指向当前环境的全局对象。例如,如果你想在任何环境中添加一个全局变量或使用全局函数,可以这样做:
globalThis.myGlobalFunction = function() {
console.log('This function is accessible globally');
};
globalThis.myGlobalVariable = "I'm a global variable";
globalThis
特性是在 ECMAScript 2019 (ES10) 中标准化的,因此在现代浏览器和Node.js版本中都应得到支持。