Sobes.tech
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 propio this; heredan this del contexto léxico circundante. Las funciones normales tienen su propio this, que depende de cómo se llaman.
  • Ausencia de arguments: Las funciones flecha no tienen el objeto arguments. 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`