0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В этом уроке мы познакомимся с window. Это глобальный объект, предоставляемый браузером.</p>
1
<p>В этом уроке мы познакомимся с window. Это глобальный объект, предоставляемый браузером.</p>
2
<p>Через него происходит управление окнами (вкладками) в браузере. Он содержит функции для открытия вкладки, управления положением страницы и многим другим:</p>
2
<p>Через него происходит управление окнами (вкладками) в браузере. Он содержит функции для открытия вкладки, управления положением страницы и многим другим:</p>
3
<p>Объект window доступен в консоли DevTools. Попробуем вызвать метод из примера выше там.</p>
3
<p>Объект window доступен в консоли DevTools. Попробуем вызвать метод из примера выше там.</p>
4
<p>Вот несколько примеров его возможностей:</p>
4
<p>Вот несколько примеров его возможностей:</p>
5
<p>Кроме того, внутри window находится объект document. Мы сможем использовать его при работе с содержимым страницы в последующих уроках.</p>
5
<p>Кроме того, внутри window находится объект document. Мы сможем использовать его при работе с содержимым страницы в последующих уроках.</p>
6
<p>Объект window задает глобальный контекст выполнения. Тег window хранит все остальные глобально доступные свойства и объекты внутри себя. Когда мы вызываем глобальные функции, такие как alert() или console.log(), браузер ищет их в объекте window. Другими словами, мы фактически вызываем window.alert().</p>
6
<p>Объект window задает глобальный контекст выполнения. Тег window хранит все остальные глобально доступные свойства и объекты внутри себя. Когда мы вызываем глобальные функции, такие как alert() или console.log(), браузер ищет их в объекте window. Другими словами, мы фактически вызываем window.alert().</p>
7
<p>То же самое относится и ко всем другим функциям, используемым напрямую и без импорта:</p>
7
<p>То же самое относится и ко всем другим функциям, используемым напрямую и без импорта:</p>
8
<h2>Опасность глобального состояния</h2>
8
<h2>Опасность глобального состояния</h2>
9
<p>Наличие объекта window - это техническая реализация от JavaScript, на которую не стоит полагаться при разработке.</p>
9
<p>Наличие объекта window - это техническая реализация от JavaScript, на которую не стоит полагаться при разработке.</p>
10
<p>Рассмотрим такой код:</p>
10
<p>Рассмотрим такой код:</p>
11
<p>Установка свойства в window автоматически делает это свойство доступным из любой точки кода браузера. Другими словами, мы создали<strong>глобальную переменную</strong>.</p>
11
<p>Установка свойства в window автоматически делает это свойство доступным из любой точки кода браузера. Другими словами, мы создали<strong>глобальную переменную</strong>.</p>
12
<p>Такие переменные создают много проблем при разработке. Нам не совсем понятно, откуда они берутся и кто их изменяет.</p>
12
<p>Такие переменные создают много проблем при разработке. Нам не совсем понятно, откуда они берутся и кто их изменяет.</p>
13
<p>На глобальные переменные нельзя полагаться. Есть вероятность, что в них появятся изменения, что часто приводит к ошибкам в работе.</p>
13
<p>На глобальные переменные нельзя полагаться. Есть вероятность, что в них появятся изменения, что часто приводит к ошибкам в работе.</p>
14
<p>Кроме того, на веб-страницах можно встретить различные скрипты, не связанные друг с другом. Это могут быть различные счетчики аналитических систем, маркетинговые инструменты и другие подобные вещи. Все они имеют доступ к одному и тому же window.</p>
14
<p>Кроме того, на веб-страницах можно встретить различные скрипты, не связанные друг с другом. Это могут быть различные счетчики аналитических систем, маркетинговые инструменты и другие подобные вещи. Все они имеют доступ к одному и тому же window.</p>
15
<p>Из-за этого мы можем оказаться в такой ситуации: мы устанавливаем свойства в window в одном скрипте и случайно нарушаем работу другого скрипта, который использует то же самое глобальное свойство.</p>
15
<p>Из-за этого мы можем оказаться в такой ситуации: мы устанавливаем свойства в window в одном скрипте и случайно нарушаем работу другого скрипта, который использует то же самое глобальное свойство.</p>
16
<p>В хорошо написанном коде объект window напрямую никогда не встречается. Но знать о его существовании важно для того, чтобы понимать, как JavaScript функционирует в браузерах.</p>
16
<p>В хорошо написанном коде объект window напрямую никогда не встречается. Но знать о его существовании важно для того, чтобы понимать, как JavaScript функционирует в браузерах.</p>