TGViewer
Настя Котова // Frontend & Node.js Настя Котова // Frontend & Node.js @startpoint_dev · 1.41K subscribers
Post #12 205
Настя Котова // Frontend & Node.js Разбираемся с потерей контекста this в JavaScript! 🔍 Мы часто сталкиваемся с вопросами о this на собеседованиях по JavaScript. Сегодня мы разберем типичный случай, когда контекст this теряется и как это повлияет на код. 📝 Рассмотрим пример: function show()…
🔍 Вспоминаем наш последний разговор о контексте this в JavaScript и углубляемся в детали глобального объекта! 🌐

Когда мы вызываем такую функцию:

function show() {
console.log(this);
}
show();

результат зависит от режима выполнения кода: в строгом режиме получим undefined, в нестрогом — глобальный объект.

🔹 Что такое глобальный объект?
Это специальный объект, который доступен в любом уголке нашего JavaScript-кода. В браузере он известен как window, в Node.js — как global.

🔸 Как работать с глобальными объектами?
1. Можно обращаться к свойствам глобального объекта напрямую:

alert("Привет"); // то же самое, что и
window.alert("Привет");


2. Глобальные переменные, объявленные через var, автоматически становятся частью window в браузере:

var gVar = 5;
alert(window.gVar); // 5


3. Глобальный объект помогает проверить поддержку современных возможностей языка:

if (!window.Promise) {
alert("Ваш браузер очень старый!");
}


❓ Но как быть, если код должен работать и в браузере, и на сервере?
Ключ к решению — globalThis, универсальный объект, который справедлив для любой среды исполнения. Он имеет полную поддержку во всех последних версиях браузеров, и вы также можете использовать его в Node.js 12+. Подробнее можно прочитать здесь: MDN globalThis.

Были ли вы в курсе о globalThis? Поделитесь в комментариях 📬
  • 🔥 3
  • 👍 1
More from @startpoint_dev
  1. Sep 21, 2026Я к вам с новым анонсом. Этот год я заканчиваю выступлением на HolyJS! Конференция пройдёт…
  2. Sep 14, 2026В прошлый раз разбирали, зачем нужны using и await using и где они работают. Теперь посмот…
  3. Sep 7, 2026В JavaScript регулярно появляются новые возможности, и не про все из них мы вообще узнаём.…
  4. Aug 31, 2026В цикле про рендеринг мы разбирали конвейер: стили, лейаут, отрисовка, композитинг. Всё эт…
  5. Aug 24, 2026Весной мы обсуждали работу с сырыми данными: ArrayBuffer, Buffer в Node.js, SharedArrayBuf…
  6. Aug 17, 2026Когда я готовила материал для цикла про Next.js, то неожиданно для себя узнала, что в нём…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →