Sobes.tech
Middle

Cum funcționează o închidere în JavaScript? Explică cu un exemplu al variabilei index și al funcției run din soluția ta.

sobes.tech AI

Răspuns de la AI

În JavaScript, o închidere (closure) este o funcție care își amintește mediul lexical, chiar dacă este apelată în afara domeniului său.

Să luăm un exemplu cu variabila index și funcția run:

function createRunner() {
  let index = 0;
  function run() {
    console.log(index);
    index++;
  }
  return run;
}

const runner = createRunner();
runner(); // 0
runner(); // 1
runner(); // 2

Aici, funcția run închide variabila index din funcția externă createRunner. Chiar dacă createRunner și-a încheiat execuția, run continuă să aibă acces la index și poate modifica valoarea acesteia. Acest lucru permite păstrarea stării între apelurile funcției run.

Astfel, closure-urile permit crearea de funcții cu variabile private și păstrarea stării fără a folosi variabile globale.