Sobes.tech
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.