Kursy i Poradniki IT - Adrian Kowalski
Kurs JavaScript dla Początkujących
O lekcji

Closure to funkcja, która „zapamiętuje” środowisko, w którym została stworzona, nawet po jej wykonaniu. Dzięki closures możemy tworzyć prywatne zmienne i funkcje.

Przykład – Closure

function zewnętrzna() {
  let licznik = 0;

  return function wewnętrzna() {
    licznik++;
    console.log(licznik);
  };
}

const inkrementuj = zewnętrzna();
inkrementuj(); // 1
inkrementuj(); // 2

W powyższym przykładzie funkcja wewnętrzna() jest dostępna poza funkcją zewnętrzną(), ale nadal ma dostęp do zmiennej licznik, która jest jej „środowiskiem” zamkniętym. Dzięki temu licznik jest prywatną zmienną, a dostęp do niej mamy tylko przez funkcję inkrementuj().