Zárások a JavaScriptben
Most tanulmányozzuk a zárás (closure) fogalmát. Valójában Ön már ismeri ezt a fogalmat, már csak a helyes terminológiát kell megtanulnia.
Tehát a zárás egy függvény, valamennyi hozzá hozzáférhető külső változóval együtt. Vagy más szóval, a zárás egy függvény a saját lexikális környezetével együtt.
A JavaScriptben leggyakrabban, amikor egy "függvény zárásáról" beszélnek, nem magára a függvényre gondolnak, hanem pontosan a külső változóira. Ha egy függvény egy változót a saját lexikális környezetéből kap, akkor azt mondják, hogy "a változó a zárásból származik".
Emlékezzünk vissza a kódra, amit az előző leckében készítettünk:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // kiírja az 1-et
Ebben az esetben azt is mondhatjuk, hogy a
func függvény a num változó értékét
a zárásból kapja. Azt is mondhatjuk,
hogy a func függvény a num változó értékét
a zárásban tárolja.