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.