Sobes.tech
Junior — Middle

Můžete vysvětlit, co je to uzávěr v jazyce JavaScript a jak funguje?

sobes.tech AI

Odpověď od AI

Závěs v JavaScriptu je funkce, která si „pamatuje“ prostředí, ve kterém byla vytvořena, i když toto prostředí již není aktivní. Jednoduše řečeno, funkce uvnitř jiné funkce může po jejím dokončení přistupovat k proměnným vnější funkce.

To funguje díky tomu, že při vytváření funkce je zachována odkaz na lexikální prostředí, ve kterém byla deklarována.

Příklad:

function vnější() {
  let čítač = 0;
  return function vnitřní() {
    čítač++;
    console.log(čítač);
  };
}

const čítač = vnější();
čítač(); // 1
čítač(); // 2

Zde vnitřní uzavírá proměnnou čítač z vnější, čímž si uchovává její stav mezi voláními.