Junior — Middle
Tudod magyarázni, mi az a closure JavaScriptben, és hogyan működik?
sobes.tech MI
Válasz az MI-től
A JavaScript-ben a lezárás egy olyan függvény, amely „emlékszik” arra a környezetre, ahol létrejött, még akkor is, ha ez a környezet már nem aktív. Egyszerűbben fogalmazva, egy másik függvényen belüli függvény hozzáférhet a külső függvény változóihoz, miután az befejezte a futását.
Ez azért működik, mert a függvény létrehozásakor egy hivatkozás kerül mentésre arra a lexikális környezetre, ahol deklarálták.
Példa:
function külső() {
let számláló = 0;
return function belső() {
számláló++;
console.log(számláló);
};
}
const számláló = külső();
számláló(); // 1
számláló(); // 2
Itt a belső bezárja a külső változóját, megőrizve annak állapotát a hívások között.