|
5 | 5 |
|
6 | 6 | В браузере он называется `window`, в Node.js — `global`, в другой среде исполнения может называться иначе. |
7 | 7 |
|
8 | | -Недавно `globalThis` был добавлен в язык как стандартизированное имя для глобального объекта, которое должно поддерживаться в любом окружении. В некоторых браузерах, например в старой версии Edge который не был на Chromium, `globalThis` ещё не поддерживается, но легко реализуется с помощью полифила. |
| 8 | +Недавно `globalThis` был добавлен в язык как стандартизированное имя для глобального объекта, которое должно поддерживаться в любом окружении. Он поддерживается во всех основных браузерах. |
9 | 9 |
|
10 | 10 | Далее мы будем использовать `window`, полагая, что наша среда - браузер. Если скрипт может выполняться и в другом окружении, лучше будет `globalThis`. |
11 | 11 |
|
@@ -82,7 +82,8 @@ if (!window.Promise) { |
82 | 82 | Это включает в себя как встроенные объекты, например, `Array`, так и характерные для окружения свойства, например, `window.innerHeight` -- высота окна браузера. |
83 | 83 | - Глобальный объект имеет универсальное имя -- `globalThis`. |
84 | 84 |
|
85 | | - ...Но чаще на него ссылаются по-старому, используя имя, характерное для данного окружения, такое как `window` (браузер) и `global` (Node.js). Так как `globalThis` появился недавно, он не поддерживается в IE и Edge (не-Chromium версия), но можно использовать полифил. |
| 85 | + ...Но чаще на него ссылаются по-старому, используя имя, характерное для данного окружения, такое как `window` (браузер) и `global` (Node.js). |
| 86 | + |
86 | 87 | - Следует хранить значения в глобальном объекте, только если они действительно глобальны для нашего проекта. И стараться свести их количество к минимуму. |
87 | 88 | - В браузерах, если только мы не используем [модули](info:modules), глобальные функции и переменные, объявленные с помощью `var`, становятся свойствами глобального объекта. |
88 | 89 | - Для того, чтобы код был проще и в будущем его легче было поддерживать, следует обращаться к свойствам глобального объекта напрямую, как `window.x`. |
0 commit comments