Domknięcia w JavaScript
Przejdźmy teraz do nauki pojęcia domknięcie (closure). W zasadzie już znasz to pojęcie, pozostało tylko poznać poprawną terminologię.
A więc, domknięcie - to funkcja wraz ze wszystkimi zmiennymi zewnętrznymi, które są dla niej dostępne. Albo, innymi słowy, domknięcie - to funkcja wraz ze swoim otoczeniem leksykalnym.
W JavaScript najczęściej, mówiąc "domknięcie funkcji", mają na myśli nie samą tę funkcję, a właśnie jej zmienne zewnętrzne. Jeśli jakaś funkcja otrzymuje zmienną ze swojego otoczenia leksykalnego, to mówi się "zmienna jest brana z domknięcia".
Przypomnijmy kod, który zrobiliśmy w poprzedniej lekcji:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // wyświetli 1
W tym przypadku można powiedzieć, że funkcja
func otrzymuje wartość zmiennej
num z domknięcia. Można też powiedzieć,
że funkcja func przechowuje wartość zmiennej
num w domknięciu.