Una chiusura in JavaScript è una funzione che tiene traccia dell’ambiente in cui è stata creata. In particolare, ha accesso a tre ambiti di variabili:
1. Le sue proprie variabili, quelle definite all’interno della stessa funzione.
2. Le variabili della funzione madre, cioè la funzione all’interno della quale è definita la chiusura.
3. Le variabili globali, cioè quelle definite al di fuori di tutte le funzioni.
La chiusura è utile quando si ha una funzione interna che ha bisogno di accedere ai valori della funzione esterna anche dopo che la funzione esterna ha terminato la sua esecuzione. Grazie alla chiusura, la funzione interna mantiene la connessione con l’ambiente esterno, mantenendo vivo l’accesso alle variabili.
Esempio di chiusura in JavaScript:
```
function funzioneMadre() {
var varMadre = “Sono la variabile della funzione madre”;
var chiusura = funzioneMadre();
chiusura(); // “Sono la variabile della funzione madre“
```
In questo esempio, `funzioneFiglia` ha accesso alla variabile `varMadre` dopo che `funzioneMadre` ha terminato la sua esecuzione.