Sobes.tech
Junior

¿Cuál es la diferencia entre las dos formas de definir una función?

sobes.tech AI

Respuesta de la IA

La principal diferencia es el contexto de this.

Forma de definir una función Diferencia
declaración de función El contexto de this se determina por cómo se llama a la función. Se eleva antes de la ejecución del código (hoisting).
función flecha El contexto de this hereda del contexto circundante (lexicográfico). No se eleva (sin hoisting).
// declaración de función
function funcionRegular() {
  console.log(this); // `this` depende de la llamada
}

// función flecha
const funcionFlecha = () => {
  console.log(this); // `this` hereda del contexto donde se define la función
};

Las funciones flecha tampoco tienen su propio objeto arguments (se toma del contexto externo) y no pueden ser usadas como constructores con el operador new.