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?

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


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.