Middle+
¿En qué se diferencian las funciones flecha de las funciones normales en el contexto del trabajo con this?
sobes.tech AI
Respuesta de la IA
Стрелочные функции в 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 из внешней области, например, внутри колбэков.