Higher-order fonksiyonlar
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
-
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.
-
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 '); -
Higher-order örneklerini eşleştir
- map
- fonksiyon alır
- withPrefix
- fonksiyon döndürür
- filter
- koşul fonksiyonu alır