You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/06-advanced-functions/05-global-object/article.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,17 +71,17 @@ window.alert("Привет");
71
71
alert(this); // window
72
72
```
73
73
74
-
Почему так? На момент создания языка, объединение нескольких аспектов в одном объекте `window`, должно было "упростить" работу. Но с тех пор многое изменилось. Крошечные скрипты превратились в крупные приложения, требующие правльной архитектуры.
74
+
Почему так? На момент создания языка, объединение различных данных в одном объекте `window`, должно было "упростить" работу. Но с тех пор многое изменилось. Крошечные скрипты превратились в крупные приложения, требующие правильной архитектуры.
75
75
76
76
Хорошо ли, что разные скрипты (возможно из разных источников) "видят" переменные друг друга?
77
77
78
-
Нет, потому что это может привести к конфликту имён: одинаковые имена переменных могут использоваться двумя скриптами для различных целей и эти переменные будут конфликтовать между собой.
78
+
Нет, потому что это может привести к конфликту имён:если одинаковые имена переменных используются двумя скриптами для различных целей, то эти переменные будут конфликтовать между собой.
79
79
80
-
Сейчас, многоцелевой `window` считается ошибкой проектирования языка.
80
+
Сейчас, "многоцелевой"`window` считается ошибкой проектирования языка.
81
81
82
82
К счастью, есть "дорога из ада" — JavaScript модули.
83
83
84
-
Если мы установим тегу `<script>` атрибут `type="module"`, такой скрипт будет считаться отдельным модулем сосбственной областью видимости верхнего уровня (лексическим окружением) не пересекающейся с `window`.
84
+
Если мы назначим тегу `<script>` атрибут `type="module"`, такой скрипт будет считаться отдельным модулем с собственной областью видимости верхнего уровня (лексическим окружением) не пересекающейся с `window`.
85
85
86
86
- В модуле `var x` не станет свойством `window`:
87
87
@@ -93,7 +93,7 @@ window.alert("Привет");
93
93
</script>
94
94
```
95
95
96
-
- Два модуля, которые не видят переменные друг друга:
96
+
- Два модуля, которые не "видят" переменные друг друга:
97
97
98
98
```html run
99
99
<script type="module">
@@ -120,9 +120,9 @@ window.alert("Привет");
120
120
121
121
## Допустимое использование глобального объекта
122
122
123
-
1. Обычно не рекомендуется использовать глобальные переменные. Желатьльно, применать как можно мешьше таких переменных. Однако, если нужно поместить что-либо в глобальную область видимости, мы можем захотеть добавить это в `window` (или `global` в Node.js).
123
+
1. Обычно не рекомендуется использовать глобальные переменные. Желатьльно, применять их как можно мешьше. Однако, если нужно поместить что-либо в глобальную область видимости, мы можем добавить это в `window` (или `global` в Node.js).
124
124
125
-
Мы помещаем информацию о текущем пользователе в глобальный объект, чтобы она была доступна другим скриптам:
125
+
Поместим информацию о текущем пользователе в глобальный объект, чтобы она была доступна другим скриптам:
126
126
127
127
```js run
128
128
// явное назначение свойства `window`
@@ -152,4 +152,4 @@ window.alert("Привет");
152
152
}
153
153
```
154
154
155
-
...И конечно, если в браузере мы используем `window` для доступа к функциям окна браузера (не как глобального объекта) это вполне нормально.
155
+
...И конечно, если в браузере мы используем `window` для доступа к функциям окна браузера (не глобального объекта) это вполне нормально.
0 commit comments