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

Может ли быть другой this в блоке if

Да, this в блоке if может отличаться от внешнего контекста, если функция вызывается в другом контексте. this определяется не местом объявления, а способом вызова функции.

javascript
const obj = {
  method() {
    if (true) {
      function innerFunc() {
        console.log(this); // window/undefined (в strict mode)
      }
      innerFunc(); // вызов без контекста
    }
  }
};

obj.method(); // внутри if this будет глобальный объект/undefined

text

Чтобы сохранить контекст, можно:
1. Использовать стрелочную функцию (она не имеет своего `this`)
2. Привязать контекст через `.bind()`
3. Сохранить `this` в переменную (например, `const self = this`)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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