Middle
¿En qué se diferencia una función de flecha de una función nombrada normal?
sobes.tech AI
Respuesta de la IA
Las funciones flecha en JavaScript difieren de las funciones nombradas normales en varios aspectos clave:
- Contexto
this: Las funciones flecha no tienen su propiothis; heredanthisdel contexto léxico circundante. Las funciones normales tienen su propiothis, que depende de cómo se llaman. - Ausencia de
arguments: Las funciones flecha no tienen el objetoarguments. Para acceder a los argumentos, se deben usar parámetros o parámetros rest. - No se pueden usar como constructores: Las funciones flecha no se pueden llamar con
new. - Sintaxis: Las funciones flecha son más cortas y convenientes para escribir funciones cortas.
Ejemplo:
const obj = {
value: 42,
regularFunc: function() { return this.value; },
arrowFunc: () => this.value
};
console.log(obj.regularFunc()); // 42
console.log(obj.arrowFunc()); // undefined, ya que `this` no apunta a `obj`