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

Как переопределить контекст стрелочной функции

Стрелочные функции не имеют собственного контекста (this), они всегда берут его из внешней лексической области. Поэтому их контекст нельзя переопределить с помощью call(), apply() или bind().

javascript
const obj = { value: 42 };
const arrowFunc = () => console.log(this.value);

// Не сработает - this останется прежним
arrowFunc.call(obj); // undefined (если в глобальной области value нет)

Для переопределения контекста нужно использовать обычную функцию:

javascript
function regularFunc() {
  console.log(this.value);
}

regularFunc.call(obj); // 42

Или обернуть стрелочную функцию в обычную, если нужно сохранить другие преимущества стрелочных функций.

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

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

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

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