Vai al contenuto
Miraat·dweb developer journey, reflected

Closure e Scope in JavaScript

Capire perché una funzione "ricorda" le variabili dove è stata creata, anche dopo che il contesto è finito.

Core 25 minuti Prerequisiti: Sintassi essenziale di JavaScript

Cos'è una closure

Una closure è una funzione che mantiene accesso al lexical scope in cui è stata creata, anche se viene chiamata altrove.

function counter() {
  let n = 0;
  return function () {
    return ++n;
  };
}

const inc = counter();
inc(); // 1
inc(); // 2

La funzione interna ricorda n anche dopo che counter() è finita.

Quando le incontri

  • Module pattern (state privato).
  • Callback con dati catturati.
  • Hook React (useState usa closure).

Risorse consigliate