Junior — Middle
Môžete vysvetliť, čo je uzáver v jazyku JavaScript a ako funguje?
sobes.tech AI
Odpoveď od AI
Zatváranie v JavaScripte je funkcia, ktorá si «pamätá» prostredie, v ktorom bola vytvorená, aj keď toto prostredie už nie je aktívne. Jednoducho povedané, funkcia vo vnútri inej funkcie môže po jej dokončení pristupovať k premenným vonkajšej funkcie.
To funguje preto, že pri vytváraní funkcie je zachovaná referencia na lexikálne prostredie, v ktorom bola deklarovaná.
Príklad:
function vonkajšia() {
let čítač = 0;
return function vnútorná() {
čítač++;
console.log(čítač);
};
}
const čítač = vonkajšia();
čítač(); // 1
čítač(); // 2
Tu vnútorná uzatvára premennú čítač z vonkajšej, čím si udržiava jej stav medzi volaniami.