Sobes.tech
Junior

Qual è la differenza tra due modi di definire una funzione?

sobes.tech AI

Risposta dell'AI

La principale differenza riguarda il contesto di this.

Metodo di definizione della funzione Differenza
dichiarazione di funzione Il contesto this è determinato da come viene chiamata la funzione. Viene sollevato prima dell'esecuzione del codice (hoisting).
funzione freccia Il contesto this eredita da quello circostante (lexical). Non viene sollevato (no hoisting).
// dichiarazione di funzione
function funzioneRegolare() {
  console.log(this); // `this` dipende dalla chiamata
}

// funzione freccia
const funzioneFleccia = () => {
  console.log(this); // `this` eredita dal contesto in cui è definita la funzione
};

Le funzioni freccia non hanno anche il loro oggetto arguments (viene preso dal contesto esterno) e non possono essere usate come costruttori con l'operatore new.