Higher-order function

Higher-order function adalah fungsi yang menerima fungsi dan/atau mengembalikan fungsi. Kamu sudah memakainya (map, filter), sekarang kamu membuatnya. Pola ini dipakai untuk membuat fungsi terspesialisasi dari satu template umum. Pola ini juga yang dipakai middleware dan dekorator: satu fungsi membungkus fungsi lain untuk menambah perilaku tanpa mengubah isinya.

👀 Contoh dulu

function buatSapaan(sapaan) {
  return (nama) => `${sapaan}, ${nama}!`;
}

const formal = buatSapaan('Selamat pagi');
const santai = buatSapaan('Woi');

console.log(formal('Bu Ani'));
console.log(santai('Bimo'));

Hasilnya: Selamat pagi, Bu Ani! Woi, Bimo!

💡 Satu template fungsi menghasilkan banyak fungsi terspesialisasi. Perhatikan return-nya berupa FUNGSI, bukan nilai biasa.

📝 Sekarang giliranmu

Buat pengali(faktor) yang mengembalikan fungsi pengali. Buat const kaliTiga = pengali(3), lalu tampilkan kaliTiga(5).

Preview