Встречается на собеседованиях • сегодня

Почему this непонятен в JavaScript

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

  1. Глобальный контекст: this ссылается на window (в браузере)
  2. Метод объекта: this - сам объект
  3. Конструктор: this - новый экземпляр
  4. Стрелочные функции: берут this из внешнего контекста
  5. Явная привязка: call, apply, bind задают this явно

Пример:

javascript
const obj = {
  name: 'Test',
  regularFunc() {
    console.log(this.name); // 'Test'
  },
  arrowFunc: () => {
    console.log(this.name); // undefined (берет window)
  }
};

Стрелочные функции не имеют своего this, что часто вызывает путаницу. Для явного управления контекстом используют bind или сохраняют this в переменную (например, const self = this).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы