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()); // 2Zastosowanie 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.