深入讲解:ECMAScript 2020(ES11)中的全局对象:globalThis

在 ECMAScript 2020(ES11)中,引入了一个新的全局对象:globalThis。这个对象在浏览器和 Node.js 等平台中都可用,可以方便地获取全局作用域中的 this 对象。

什么是 globalThis

在 ES6 之前,获取全局作用域中的 this 对象是比较困难的。在浏览器中,通常可以使用 window 对象来获取全局作用域中的 this,但在 Node.js 等平台中,没有类似的全局对象。

为了解决这个问题,ES2020 引入了 globalThis 对象。globalThis 是一个全局对象,它可以在任何地方使用,而且在不同的平台上都有相同的名称和行为。

globalThis 的用法

使用 globalThis 可以方便地获取全局作用域中的 this 对象。下面是一个示例代码:

// 浏览器中
console.log(globalThis === window); // true

// Node.js 中
console.log(globalThis === global); // true

在浏览器中,globalThis 对象就是 window 对象。而在 Node.js 中,globalThis 对象就是 global 对象。

globalThis 的指导意义

globalThis 对象的引入,让我们可以更加方便地获取全局作用域中的 this 对象。这对于编写跨平台的代码非常有用。

此外,globalThis 还可以用于在不同平台上实现相同的功能。例如,我们可以使用 globalThis.setTimeout 来代替 window.setTimeout 或者 global.setTimeout,这样就可以在不同平台上实现相同的定时器功能。

总结

ECMAScript 2020(ES11)中引入了一个新的全局对象:globalThis。globalThis 对象可以方便地获取全局作用域中的 this 对象,而且在不同的平台上都有相同的名称和行为。使用 globalThis 可以让我们更加方便地编写跨平台的代码。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658a35fbeb4cecbf2df66064


纠错
反馈