Uždarosios funkcijos JavaScript
Dabar išnagrinėkime uždarosios funkcijos (closure) sąvoką. Tiesą sakant, jūs jau esate susipažinę su šia sąvoka, belieka tik sužinoti tinkamą terminologiją.
Taigi, uždaroji funkcija - tai funkcija kartu su visais išoriniais kintamaisiais, kurie jai yra prieinami. Arba, kitaip tariant, uždaroji funkcija - tai funkcija kartu su savo leksine aplinka.
JavaScript dažniausiai, sakant "funkcijos uždarumo sritis", turima omenyje ne pati funkcija, o būtent jos išoriniai kintamieji. Jei kuri nors funkcija gauna kintamąjį iš savo leksinės aplinkos, tai sakoma "kintamasis paimamas iš uždarumo srities".
Prisiminkime kodą, kurį sukūrėme ankstesnėje pamokoje:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // išves 1
Šiuo atveju galima pasakyti, kad funkcija
func gauna kintamojo num reikšmę
iš uždarumo srities. Taip pat galima pasakyti,
kad funkcija func saugo kintamojo
num reikšmę uždarumo srityje.