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

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

Стрелочные функции не имеют собственного контекста (this), они наследуют его из окружающей лексической области. Это их ключевое отличие от обычных функций.

Если нужно изменить контекст, можно:

  1. Использовать обычную функцию
  2. Явно привязать контекст через .bind()
  3. Использовать замыкание для сохранения нужного контекста

Пример:

javascript
const obj = {
  name: 'Test',
  regularFunc: function() {
    console.log(this.name); // Работает
  },
  arrowFunc: () => {
    console.log(this.name); // Не работает (this берется из внешней области)
  }
};

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

javascript
function wrapper() {
  const arrow = () => console.log(this.name);
  arrow();
}

wrapper.call({name: 'New Context'}); // 'New Context'
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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