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

Влияет ли на работу стрелочной функции привязка контекста через bind

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

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

const boundArrow = obj.arrowFunc.bind({name: 'Bound'});
boundArrow(); // все равно undefined

В примере выше bind() не поменял контекст стрелочной функции. Для стрелочных функций стоит просто полагаться на лексический this, а не пытаться менять его через bind/call/apply.

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

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

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

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