Fonksiyon İfadesi

Fonksiyonu Değişkene Atama

Bir değişkene değer olarak fonksiyon atamaya fonksiyon ifade etme denir. Bu kullanımda fonksiyon sonuna zorunlu olmadığı halde okunurluğu artırmak için ; konur.

Bir değişkene değer olarak fonksiyon tanımlarsak fonksiyon nasıl yürütülecek ? Tabii ki de sonuna () sembolleri ekleyerek. Örnek.

let fonksiyon = function fx() {
    //kodlar
    return 'fx fonksiyonu';
}; 
alert( fonksiyon() ); // fonksiyon kodları stringmiş gibi görünür.

İfade edilen (deklare edilen) fonksiyonlara isim vermeye gerek yoktur çünkü ismi ile çağrılamaz. İsimsiz bu fonksiyonlara anonim fonksiyon denir. Örnek.

let anonim = function () { // ismi yok. anonim fonksiyon.
    return 'Bu anonim bir fonksiyon ifadesidir.';
};
alert( anonim() ); // ifade edilen fonksiyonu yürüttük.

Başka bir örnek.

let usAl = function (sayi, us) { // ismi yok. anonim fonksiyon.
    return sayi**us
};
alert( usAl(3,4) ); // ifade edilen fonksiyonu yürüttük.

Bu şekilde ifade ettiğimiz değişkenin tipi function olarak görünür. Bir fonksiyonu ifade etmek ile tanımlamak arasında da bazı farklar vardır.

  • Tanımlaman Fonksiyon: Kapsam yürütülmeden önce yürütülerek bellekte oluşturulur. Bu sayede bloktaki herhangi bir yerden fonksiyon ismi ile çağrılabilir.

  • İfade Edilen Fonksiyon: İfade edildiği (deklare edildiği) satır yürütüldüğünde bellekte oluşturulur. Bu sebeple satır yürütüldükten sonra değişken adı ile çağrılabilir.

alert( fx() ); // çalışır
function fx() {
    //kodlar
    return 'fx fonksiyon tanımı';
}
alert( fx() ); //çalışır
alert( foo() ); // hata verir.
let foo = function () {
    //kodlar
    return 'foo fonksiyon ifadesi';
};
alert( foo() ); //çalışır

Doğrusal olmayan bir yapıda işlem yapmamızı sağlayan fonksiyonlar çok önemlidir. Hangi kullanımı tercih edeceğiniz genellikle performans ve güvenlik ile ilgili olsa da fonksiyonlar genel olarak tanımlanarak kullanılır.

Last updated