> Что такое this в JavaScript и как он работает в объектах и функциях? (JavaScript)

Уровень: junior · Роль: frontend · Категория: Технические вопросы

Компании: Иннотех, Kvando Technologies, VK, МТГ Бизнес решения, Rutube, Exness, TYMY, Evercode, Purrweb, Яндекс

Стек: JavaScript

> Пример ответа

this в JavaScript - это ключевое слово, которое ссылается на контекст выполнения функции. Его значение определяется не тем, где функция объявлена, а тем, как она вызвана.

В объектах this обычно указывает на сам объект, если метод вызывается через точку:

JAVASCRIPT
const user = {
name: 'Анна',
greet() {
console.log(`Привет, ${this.name}`);
}
};
user.greet(); // this → user, выведет "Привет, Анна"

В обычных функциях (не стрелочных) this зависит от контекста вызова:

  • В глобальном контексте (в браузере) - window (в строгом режиме undefined).

  • При вызове как метод объекта - сам объект.

  • При вызове через call, apply или bind - переданный объект.

  • В конструкторе (с new) - новый создаваемый экземпляр.

Стрелочные функции (=>) не имеют собственного this - они наследуют его из внешнего лексического окружения:

JAVASCRIPT
const obj = {
name: 'Боб',
regularFunc: function() {
console.log(this.name); // 'Боб' (this = obj)
},
arrowFunc: () => {
console.log(this.name); // undefined (this = внешний контекст, например window)
}
};

Ключевое правило: this привязывается в момент вызова, а не объявления (кроме стрелочных функций и привязки через bind).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью