Sobes.tech
Назад к вопросам
Middle+
5

Чем отличаются стрелочные функции от обычных в контексте работы с this?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

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

Обычные функции имеют собственный this, который определяется в момент вызова функции (например, через объект перед точкой, call, apply или bind).

Пример:

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

obj.regularFunc(); // 42 — this указывает на obj
obj.arrowFunc();   // undefined или значение из внешнего контекста, т.к. стрелочная функция не имеет своего this

Таким образом, стрелочные функции удобны, когда нужно сохранить контекст this из внешней области, например, внутри колбэков.