Yapay Gezegen

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.

(function() {

// Kod bloğu

})() // () fonksiyon çağırma

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

(function(dakika1) {
console.log(dakika1 / 60)
})(150) // 2.5
(dakika2 => {
console.log(dakika2 / 60)
})(330) // 5.5

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.

function ornek1(x) {
return function(y) {
console.log(x, y)
}
}

const ekle5 = ornek1(5) // hatırlanacak değer

ekle5(30) // 5 30

ekle5(80) // 5 80

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

function topla(x) {
return function(y) {
console.log(x+y)
}
}

const ekle5 = topla(5)

ekle5(30) // 35

ekle5(80) // 85
Math Metodları: abs() & sign()