JavaScript'te Kapanışlar
Şimdi kapanış (closure) kavramını inceleyelim. Aslında bu kavramla zaten tanışıyorsunuz, geriye kalan sadece doğru terminolojiyi öğrenmek.
Öyleyse, kapanış - bir fonksiyon ile ona erişilebilen tüm dış değişkenlerin bütünüdür. Ya da başka bir deyişle, kapanış - fonksiyonun kendi sözlüksel çevresiyle birlikte olan halidir.
JavaScript'te çoğu zaman, "fonksiyonun kapanışı" denildiğinde, fonksiyonun kendisi değil, tam olarak onun dış değişkenleri kastedilir. Eğer bir fonksiyon kendi sözlüksel çevresinden bir değişken alıyorsa, "değişken kapanıştan alınıyor" denir.
Önceki derste yaptığımız kodu hatırlayalım:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // 1 yazdırır
Bu durumda, func fonksiyonunun
num değişkeninin değerini kapanıştan
aldığını söyleyebiliriz. Ayrıca,
func fonksiyonunun num değişkeninin
değerini kapanışta sakladığını da söyleyebiliriz.