> Что такое this в JavaScript и как он работает в объектах и функциях? (JavaScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: Иннотех, Kvando Technologies, VK, МТГ Бизнес решения, Rutube, Exness, TYMY, Evercode, Purrweb, Яндекс
Стек: JavaScript
> Пример ответа
this в JavaScript - это ключевое слово, которое ссылается на контекст выполнения функции. Его значение определяется не тем, где функция объявлена, а тем, как она вызвана.
В объектах this обычно указывает на сам объект, если метод вызывается через точку:
JAVASCRIPTconst user = {name: 'Анна',greet() {console.log(`Привет, ${this.name}`);}};user.greet(); // this → user, выведет "Привет, Анна"
В обычных функциях (не стрелочных) this зависит от контекста вызова:
-
В глобальном контексте (в браузере) -
window(в строгом режимеundefined). -
При вызове как метод объекта - сам объект.
-
При вызове через
call,applyилиbind- переданный объект. -
В конструкторе (с
new) - новый создаваемый экземпляр.
Стрелочные функции (=>) не имеют собственного this - они наследуют его из внешнего лексического окружения:
JAVASCRIPTconst obj = {name: 'Боб',regularFunc: function() {console.log(this.name); // 'Боб' (this = obj)},arrowFunc: () => {console.log(this.name); // undefined (this = внешний контекст, например window)}};
Ключевое правило: this привязывается в момент вызова, а не объявления (кроме стрелочных функций и привязки через bind).
> Похожие задачи по frontend
Что такое всплытие (hoisting) в JavaScript?
Сколько типов данных в JavaScript и какие они
Что такое Map и Set в JavaScript
Что такое область видимости (scope) в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью