JavaScript 语言存在一个顶层对象,它提供全局环境(即全局作用域),所有代码都是在这个环境中运行。但是,顶层对象在各种实现里面是不统一的。

例如,浏览器里面,顶层对象是window,但在NodeWeb Worker中根本就没有window对象;在浏览器和Web Worker里面,self也指向顶层对象,但是Node没有self;在Node中,顶层对象是global,但其它环境都不支持。

因此为了同一段代码为了能够在各种环境中都能取到顶层对象,ES2020在语言标准的层面,引入globalThis作为顶层对象,也就是说,无论在什么环境globalThis都是存在的,并且都指向全局环境下的this。


你现在就可以在控制台尝试一下,浏览器的globalThis就是window对象~