
In JavaScript ci sono due modi per creare una funzione: l’espressione di funzione e la dichiarazione di funzione. La prima si può conservare dentro una variabile, la seconda si può richiamare da qualsiasi punto del codice. Probabilmente sei abituato a vedere dichiarazioni di funzione: è quello che conoscevo meglio anch’io, ma vale la pena sapere che esiste un’altra strada.
Questo articolo può ricevere aggiornamenti
Dichiarazione di funzione
A differenza di un’espressione di funzione, una funzione creata con una dichiarazione si può chiamare anche prima di averla dichiarata: l’interprete cerca le variabili e le dichiarazioni di funzione prima di percorrere il resto dello script. Una volta dichiarata, la puoi chiamare più avanti nel codice, ma per poterlo fare devi darle un nome.
function addition(a, b) {
return a + b;
};
var calcul= addition(2, 5) ;Espressione di funzione
L’espressione di funzione è una funzione creata, conservata e trattata come una variabile. Di solito non ha un nome, ed è per questo che si parla di funzioni anonime. La funzione è conservata in una variabile e si chiama come qualsiasi altra funzione. Attenzione però: viene elaborata solo quando l’interprete del browser legge la dichiarazione. Vuol dire che non puoi chiamarla prima di quel punto, e che qualsiasi codice che compare fino a lì può modificare quello che succede al suo interno.
var addition = function(a, b) {
return a + b;
};
var calcul = addition(2, 5) ;Immediately-Invoked Function Expression
Comunemente chiamata IIFE, isola tutte le variabili dichiarate dentro la funzione anonima da quelle di altri script che potrebbero avere lo stesso nome. Il merito è della portata delle variabili, lo scope. Ecco un esempio di IIFE.
var addition = (function(){
var a = 10;
var b = 20;
return a + b;
}());- Le parentesi che avvolgono la funzione garantiscono che venga trattata come un’espressione.
- Le due parentesi finali,
(), dicono all’interprete di eseguire subito la funzione.
La usiamo soprattutto quando cominciamo a scrivere un nuovo script, per isolare tutto il nostro codice.
Quando usare le espressioni di funzione anonime?
Servono per il codice che deve girare una volta sola, invece di essere richiamato più volte da altre parti dello script. Puoi usare un’espressione di funzione anonima:
- per evitare conflitti tra due script che usano gli stessi nomi di variabile del nostro,
- come argomento nella chiamata di una funzione (per calcolarne il valore);
- per eseguire un compito quando si verifica un evento,
- per assegnare a un oggetto il valore di una proprietà.
···


