Funzione con nome, ma Function Expression in JavaScript
Ora creiamo una funzione che avrà un nome, ma sarà comunque una Function Expression, perché partecipa in un'espressione:
+function func() {
console.log('!');
}
È interessante notare che non potremo
accedere alla nostra funzione per nome func,
ciò porterà a un errore:
+function func() {
console.log('!');
}
func(); //!! darà un errore
Per poter chiamare la nostra funzione, deve essere assegnata a una variabile:
let test = function func() {
console.log('!');
};
test(); // visualizzerà '!'
Ribadiamo: una funzione che è un'espressione funzionale non può essere chiamata per il suo nome. Una tale funzione può essere chiamata solo utilizzando la variabile in cui è stata assegnata questa funzione.
Tuttavia, un'espressione funzionale può avere un nome per la funzione, ciò è sintatticamente corretto. Il motivo per cui questo è utile lo affronteremo nelle prossime lezioni.
Ricapitoliamo: le funzioni sono Function Declaration o Function Expression non in base al fatto che abbiano un nome o meno, ma in base al fatto che partecipino o meno a delle espressioni.
Come avete visto sopra, una funzione senza nome può essere interpretata come una Function Declaration, e una funzione con nome può essere una Function Expression.