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:

javascriptfunction 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.