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.