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.