Birinci sınıf işlev
Bu maddede birçok sorun bulunmaktadır. Lütfen sayfayı geliştirin veya bu sorunlar konusunda tartışma sayfasında bir yorum yapın.
|
Bir programlama dilinin, o dildeki fonksiyonları eğer bir değişken gibi ele alınabiliyorsa o dil “Birinci Sınıf Fonksiyonlar”a sahip demektir. Örneğin:
Fonksiyonu bir değişkene atama
[değiştir | kaynağı değiştir]const foo = () => { console.log("foobar"); }; foo(); // Değişkeni kullanarak çağırdık. // foobar
Burada biz bu fonksiyonu isimsiz şekilde tanımladık, ()
ve değişken ismi ile fonksiyonu çağırdık.
Ayrıca bu çağırma işlemi fonksiyonu etkilemez.
Callback (Bir fonksiyonu parametre olarak verme)
[değiştir | kaynağı değiştir]function sayHello() { return "Hello, "; } function greeting(helloMessage, name) { console.log(helloMessage() + name); } // "sayHello" fonksiyonunu "greeting" fonksiyonuna parametre olarak verdik. greeting(sayHello, "JavaScript!"); // Hello, JavaScript!
Tanımladığımız sayHello()
fonskiyonunu, tanımladığımız diğer bir fonksiyon olan greeting()
fonksiyonuna parametre olarak gönderdik. sayHello()
fonksiyonu bize "Hello, "
dönüyordu.
Ardından 2. parametreyi ise "JavaScript!"
olarak tanımladığımız için sonuç, Hello, JavaScript!
şeklinde döndü.
Not: Bu işleme "Callback Function" adı verilir.
Return Fonksiyonları
[değiştir | kaynağı değiştir]function sayHello() { return () => { console.log("Hello!"); }; }
JavaScript’te return
ile fonksiyon döndürebilirsiniz.
Not: Buna "Yüksek Dereceli Return" denir.