Chiusure in JavaScript
Ora studiamo il concetto di chiusura (closure). In realtà tu sei già familiare con questo concetto, resta solo imparare la terminologia corretta.
Quindi, una chiusura è una funzione insieme a tutte le variabili esterne a cui ha accesso. O, in altre parole, una chiusura è una funzione insieme al proprio ambiente lessicale.
In JavaScript più spesso, dicendo "chiusura di una funzione", si intende non la funzione stessa, ma proprio le sue variabili esterne. Se invece una funzione riceve una variabile dal proprio ambiente lessicale, allora si dice "la variabile viene presa dalla chiusura".
Ricordiamo il codice che abbiamo creato nella lezione precedente:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // visualizzerà 1
In questo caso si può dire che la funzione
func riceve il valore della variabile
num dalla chiusura. Si può anche dire,
che la funzione func memorizza il valore della variabile
num nella chiusura.