Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: this, context, strict mode, function invocation

Когда this равен undefined?

Проверяет понимание контекста выполнения функции в JavaScript и случаев, когда значение this теряется или становится undefined.

Короткий ответ

В JavaScript this равен undefined в строгом режиме ('use strict'), если функция вызывается без явного контекста. Например, при простом вызове функции или в колбэке, переданном без привязки. В нестрогом режиме this в таком случае ссылается на глобальный объект (window в браузере).

Длинный ответ

Когда this равен undefined?

Значение this в JavaScript определяется тем, как вызывается функция, а не где она объявлена. this становится undefined в строгом режиме ('use strict'), когда функция вызывается без явного контекста — то есть не как метод объекта, не через call/apply/bind и не как конструктор.

Основные случаи

  • Простой вызов функции: если функция вызывается сама по себе, this будет undefined в строгом режиме.
  • Колбэки: при передаче функции как колбэка (например, в setTimeout или обработчик событий) контекст теряется, если не привязан.
  • Внутри вложенных функций: даже если внешняя функция имеет контекст, внутренняя функция (объявленная через function) получает свой собственный this, который в строгом режиме будет undefined.

Пример кода

'use strict';

function showThis() {
  console.log(this); // undefined
}

showThis();

const obj = {
  method: showThis
};

obj.method(); // obj (контекст есть)

const callback = obj.method;
callback(); // undefined (контекст потерян)

Как избежать потери контекста

  • Использовать bind, call, apply для явной привязки.
  • Использовать стрелочные функции — они не создают свой this, а наследуют его из внешнего лексического окружения.
  • Сохранять ссылку на this через переменную (например, const self = this).

Вывод

Понимание, когда this равен undefined, критично для избежания ошибок в асинхронном коде и колбэках. В современном JavaScript рекомендуется использовать стрелочные функции или явную привязку контекста, чтобы гарантировать предсказуемое поведение.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#this

#context

#strict mode

#function invocation

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию