Przejdź do treści głównej
INF.03Frontend & JS

Domknięcia (Closures) w JavaScript

Zdolność funkcji wewnętrznej do zapamiętywania i posiadania dostępu do zmiennych ze swojego leksykalnego zasięgu rodzica, nawet po zakończeniu jego działania.

Jak działa domknięcie?

Kiedy funkcja jest tworzona w JavaScript, zachowuje referencję do swojego otoczenia leksykalnego.

JAVASCRIPT
function stworzLicznik() {
    let licznik = 0; // Zmienna prywatna w domknięciu

    return {
        zwieksz: function() { licznik++; return licznik; },
        pobierz: function() { return licznik; }
    };
}

const mojLicznik = stworzLicznik();
console.log(mojLicznik.zwieksz()); // 1
console.log(mojLicznik.zwieksz()); // 2
console.log(mojLicznik.pobierz()); // 2

Zastosowanie domknięć:

  • Emulacja pól prywatnych w obiektach.
  • Tworzenie fabryk funkcji i funkcja częściowo zaaplikowana (currying).
  • Zachowanie stanu w asynchronicznych callbackach.

Chcesz sprawdzić to pojęcie w praktyce?

Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Domknięcia (Closures) w JavaScript lub rozpocznij trening.