Middle
Come funziona una closure in JavaScript? Spiegalo con un esempio della variabile index e della funzione run nella tua soluzione.
sobes.tech AI
Risposta dell'AI
In JavaScript, una closure è una funzione che ricorda il suo ambiente lessicale, anche se viene chiamata al di fuori del suo ambito.
Consideriamo un esempio con la variabile index e la funzione run:
function createRunner() {
let index = 0;
function run() {
console.log(index);
index++;
}
return run;
}
const runner = createRunner();
runner(); // 0
runner(); // 1
runner(); // 2
Qui, la funzione run chiude sulla variabile index della funzione esterna createRunner. Anche se createRunner ha già terminato la sua esecuzione, run continua ad avere accesso a index e può modificarne il valore. Questo permette di mantenere lo stato tra le chiamate alla funzione run.
In questo modo, le closure consentono di creare funzioni con variabili private e di mantenere lo stato senza usare variabili globali.