Junior — Middle
Czy możesz wyjaśnić, czym jest zamknięcie w JavaScript i jak działa?
sobes.tech AI
Odpowiedź od AI
Zamknięcie w JavaScript to funkcja, która «zapamiętuje» środowisko, w którym została utworzona, nawet jeśli to środowisko nie jest już aktywne. Mówiąc prościej, funkcja wewnątrz innej funkcji może uzyskać dostęp do zmiennych funkcji zewnętrznej po tym, jak ta zakończyła wykonywanie.
Działa to dzięki temu, że podczas tworzenia funkcji zachowywany jest odnośnik do leksykalnego środowiska, w którym została zadeklarowana.
Przykład:
function zew() {
let licznik = 0;
return function wew() {
licznik++;
console.log(licznik);
};
}
const licznik = zew();
licznik(); // 1
licznik(); // 2
Tutaj wew zamyka zmienną licznik z zew, zachowując jej stan między wywołaniami.