Apakah pola "fungsi fungsi pengembalian" memiliki nama dalam JavaScript?

14

Saya sering menggunakan pola ini dalam JavaScript. Berikut ini sebuah contoh:

const comments = [
  { text: 'Hello', id: 1 },
  { text: 'World', id: 4 },
];

const byId = id => element => element.id === id;

const comment = comments.find(byId(1));

Terkadang, pola ini dapat membuat kode kita mudah dibaca dan modular. Apa sebutan pola ini?

Vince Varga
sumber

Jawaban:

20

Mereka disebut fungsi tingkat tinggi.

Fungsi tingkat tinggi adalah fungsi yang dapat mengambil fungsi lain sebagai argumen, atau yang mengembalikan fungsi sebagai hasilnya. - Fungsi Orde Tinggi dalam JavaScript oleh M. David Green

Vince Varga
sumber
Dan Anda berakhir dengan penutupan.
Thomas Junk
3
JavaScript adalah bahasa di mana semua fungsi adalah kelas satu. Berarti Anda dapat menyebarkannya dalam variabel seperti nilai lainnya. Penutupan adalah fungsi yang memiliki akses ke "ruang lingkup leksikal" yang melampirkannya. Bekerja sedikit seperti bagaimana metode objek memiliki akses ke variabel status objek.
candied_orange
3
Dalam kasus khusus ini ia menjilat 2 args menjadi 1.
user949300