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

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

function sayHello() {
  return () => {
    console.log("Hello!");
  };
}

JavaScript’te return ile fonksiyon döndürebilirsiniz.

Not: Buna "Yüksek Dereceli Return" denir.