Birinci sınıf işlev

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 
 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) 
 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ı 
 function sayHello() {
   return () => {
     console.log("Hello!");
   };
 }
JavaScript’te return ile fonksiyon döndürebilirsiniz.Not: Buna "Yüksek Dereceli Return" denir.

Programlama