在 ES12 中,新增了一个全局对象 globalThis,它提供了一个标准的方式来获取全局对象,无论在哪个环境下都能使用。在浏览器中,它指向 window 对象,在 Node.js 中,它指向 global 对象。在本文中,我们将介绍如何使用 globalThis 对象,并给出一些示例代码。
globalThis 的作用
在以前,如果要获取全局对象,我们需要使用不同的方式,比如在浏览器中使用 window 对象,在 Node.js 中使用 global 对象。而 globalThis 提供了一个跨平台的方式来获取全局对象。它的作用如下:
- 在不同的环境中提供一个标准的方式来获取全局对象。
- 简化代码,使其更易于跨平台开发。
如何使用 globalThis
使用 globalThis 非常简单,只需要使用全局对象的属性或方法即可。例如,我们可以使用以下代码在浏览器和 Node.js 中获取全局对象:
const globalObj = globalThis;
在浏览器中,globalThis 指向 window 对象,而在 Node.js 中,它指向 global 对象。
示例代码
下面是一些使用 globalThis 的示例代码。
示例 1:在浏览器中获取全局对象
const globalObj = globalThis; console.log(globalObj === window); // true
在浏览器中,globalThis 和 window 对象是相同的,因此这段代码将输出 true。
示例 2:在 Node.js 中获取全局对象
const globalObj = globalThis; console.log(globalObj === global); // true
在 Node.js 中,globalThis 和 global 对象是相同的,因此这段代码将输出 true。
示例 3:使用 globalThis 简化代码
在以前,我们需要使用不同的方式来获取全局对象,这使得代码更加复杂。现在,我们可以使用 globalThis 简化代码,使其更易于跨平台开发。
const globalObj = globalThis; const myVar = 42; // 在浏览器中 globalObj.myVar = myVar; // 在 Node.js 中 globalObj.myVar = myVar;
在这个例子中,我们使用 globalThis 来获取全局对象,并将变量 myVar 分配给它。这使得我们的代码更加简单,因为我们不需要使用不同的方式来获取全局对象。
结论
globalThis 是一个非常有用的对象,它提供了一个标准的方式来获取全局对象。使用 globalThis,我们可以简化代码,使其更易于跨平台开发。在使用 globalThis 时,我们应该注意它只在 ES12 中可用,因此在旧的环境中可能无法使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67614ca9856ee0c1d4f72348