JavaScript IIFE Fonksiyon ve Closure Fonksiyon
Çağırılmadan Kendiliğinden Çalışan Fonksiyon (IIFE)
Çağırılmadan Kendiliğinden Çalışan Fonksiyonlar (Immediately Invoked Function Expressions) tanımlandıktan hemen sonra çalıştırılır. Fonksiyon tanımlandıktan sonra "( )" operatörü ile fonksiyon çağrılır. Kod bloğunu izole etmek ve fonksiyon içindeki değişkenlerin global alanda görünmemesini sağlamak için kullanılır. Fonksiyon içinde tanımlanan değişkenler sadece o fonksiyon içinde kullanılır (kapsülleme) ve dışarıdan erişilemez.
Çağırılmadan Kendiliğinden Çalışan Fonksiyon parametre alabilir. Arrow fonksiyon şeklinde tanımlanabilir. Örnek olarak: girilen dakika değerini, saat cinsinden bir değere çeviren fonksiyonları yazalım.
Closure Fonksiyon
Closure: bir fonksiyonun, kendisini çevreleyen dış fonksiyonun değişkenlerine erişim sağlayabilmesidir. Dış fonksiyon çalışmayı tamamladıktan sonra bile, iç fonksiyon dış fonksiyonun kapsamındaki değişkenleri "hatırlayabilir" ve kullanabilir. JavaScript programlama dilinde, çok yaygın kullanılan bir yapıdır. Closure ile fonksiyondaki değişkenleri "gizli" hale getirebiliriz. Dışarıdan bu verilere doğrudan erişim sağlanamadığı için veri gizliliğini sağlamak mümkündür.
Örnek olarak yazdığımız fonksiyonu toplama işlemine çevirdiğimizde: ekle5 ile gönderilen 5 değerinin, dış fonksiyonun x parametresinde hatırlandığı görülür.