JavaScript – domknięcia (closures)
Strona główna » JavaScript » JavaScript – domknięcia (closures)
Domknięcia (closures) w JavaScript
Domknięcia (closures) tworzą w JS izolowany zasięg dla zmiennych. Umożliwia to wielokrotne używanie danego modułu/funkcji ponieważ jest ona niezależna od otoczenia. Domknięcia pozwalają między innymi na ograniczenie liczby zmiennych globalnych. Takie zmienne mogą przysporzyć wiele problemu w sytuacji, gdy nad aplikacją pracuje większa liczba programistów, którzy tworzą różne elementy aplikacji. Ostatecznie jest to łączone w jeden program i ewentualne zdublowanie nazwy zmiennej może mieć opłakane skutki. Z pomocą przyjdą domknięcia i zobacz poniższy kod, który liczy liczbę kliknięć buttona.
< button id="click"> < /button>
< script src="script.js"> < /script>
var count = "2000";
var button = document.getElementById("click").addEventListener("click", onclick);
var clickedme = click();
function click(){
var count = "1";
function addcount() {
console.log(window.count);
return count++
}
return addcount;
}
function onclick() {
console.log(clickedme());
}
W powyższym przykładzie pomimo, że istnieje zewnętrzna (globalna) zmienna count nie wpływa ona w żaden sposób na nasz licznik. Żeby się do niej odwołać z wnętrza funkcji click() należy odwołać się do obiektu window [np. console.log(window.count)]. Dwie zmienne o tych samych nazwach mogą funkcjonować obok siebie nie przeszkadzając sobie wzajemnie. istnieje możliwość sprawdzenia wewnątrz funkcji ile razy został kliknięty i po którymś kliknięciu wywołać inny kod.
- 11
- 11
- 11
- 23
- 14