Назад к вопросам
СБЕР
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 из внешней области, например, внутри колбэков.