aimingoo / js-green-book-3

本书基于ES6,并涵盖最新的ECMAScript 2019规范,全面讲述JavaScript在五个方面的语言特性,以及将这些特性融会如一的方法。
125 stars 15 forks source link

3.4.4 注 60 是否为 ES2020? #2

Open EtherNoteWorld opened 4 years ago

EtherNoteWorld commented 4 years ago

爱民老师您好,我在 ES2018 中没有搜寻到相关的,而在 ES2020 规范中看到了 globalThis。globalThis 是否就与下面代码中的标准方法是等同的,获取得到 global?

aimingoo commented 4 years ago

这里的确是写错了,多谢指正。后续版本会按如下修订:

原文:ES2018将global作为规范的一部分定义在了全局变量中。 改为:能否访问global这个全局单例是由宿主应用来决定的。也正是因此,从ES2020规范开始提供的”全局中的this对象(globalThis)“也不再强制”总是“等义于global对象。

关于这一处修订,想要强调的是”global对象不能被直接访问“是tc39所希望看到的,他们试图将这个权力交回给引擎或宿主的开发者。ES2020中的globalThis可以是任何的ECMAScript对象,而并不一定必须是global,这是一个有着许多争议和莫名折中的结果,也许我在下一版的绿皮书中会讨论一下这个问题,就如同本书中专门讨论过JS的类型问题一样。