CodeBlanks Logo Icon CodeBlanks

Higher-order fonksiyonlar

JavaScript kursu · İleri seviye · Ders 58/100

Fonksiyonu argüman alan veya döndüren higher-order fonksiyonları öğrenirsin.

Higher-order fonksiyonlar

Bir higher-order fonksiyon, ya bir fonksiyonu parametre olarak alır ya da bir fonksiyon döndürür. JavaScript'te map, filter ve reduce birer higher-order fonksiyondur çünkü bir callback fonksiyonu alırlar.

[1, 2, 3].map(x => x * 2);

Burada map, x => x * 2 fonksiyonunu alır ve her elemana uygular. Higher-order fonksiyonlar kodu kısa ve yeniden kullanılabilir yapar; iş mantığını küçük fonksiyonlara bölmeyi sağlar.

Fonksiyon döndüren fonksiyonlar

Bir higher-order fonksiyon ayrıca fonksiyon döndürebilir. Bu, bir fabrika kurmak gibidir: dış fonksiyon bir ayar alır, iç fonksiyon o ayara göre iş yapar.

function createMultiplier(factor) {
  return n => n * factor;
}
const double = createMultiplier(2);

Burada createMultiplier(2) çağrısı double adında yeni bir fonksiyon üretir. factor closure'da saklanır ve her çağrıda kullanılır. Bu, önceden yapılandırılmış fonksiyonlar yaratmanın güçlü bir yoludur.

Uygulama createMultiplier fabrikasını yaz

createMultiplier adında higher-order bir fonksiyon yaz. factor parametresi alır ve n => n * factor döndüren bir fonksiyon döndürür. Sonra const double = createMultiplier(2); ve console.log(double(5)); çağrısı yap.

Örnek çözümü göster
function createMultiplier(factor) {
  return n => n * factor;
}
const double = createMultiplier(2);
console.log(double(5));

Kendini test et

  1. Hangisi higher-order fonksiyondur?

    • Math.max(1, 2, 3)
    • 'abc'.toUpperCase()
    • [1, 2].filter(x => x > 1)
    • Number('42')
    Cevabı göster

    [1, 2].filter(x => x > 1) — Doğru! filter bir fonksiyon alır; bu yüzden higher-order'dır.

  2. Prefix fabrikasını çağır

    const withPrefix = prefix => text => prefix + text;
    const greet = withPrefix(____);
    Cevabı göster
    const withPrefix = prefix => text => prefix + text;
    const greet = withPrefix('Merhaba ');
  3. Higher-order örneklerini eşleştir

    map
    fonksiyon alır
    withPrefix
    fonksiyon döndürür
    filter
    koşul fonksiyonu alır

İleri seviye bölümündeki tüm dersler