Sobes.tech
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.