Встречается на собеседованиях • сегодня
Может ли быть другой 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`)
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы