Advance JavaScript 8 - higher order function
Advance JavaScript 8 - higher order function
Definisi higher order function
Higher order function itu adalah sebuah function yang beroperasi pada function lain baik itu digunakan baik digunakan didalam argument ataupun return value.
Didalam Javascript itu sebuah function itu disebut dengan first class function artinya inti dari JavaScript itu adalah function yang dimana function function ini diperlakukan sebagai object.
liat code berikut ini
function kerjakantugas(matakuliah,selesai){
console.log(`mulai mengerjakan tugas(matakuliah)....`);
selesai()
}
function selesai() {
alert('selesai mengerjakan tugas')
}
kerjakantugas('pemrograman web, selesai);
function kerjakantugas ini bisa Kita sebut dengan higher order function , Dan jika kslian punya function Senagai argument nantinya itu disebut dengan callback
Jadi function yang Kita simpan sebagai argument Kita sebut callback Dan function yang memiliki callback disebut higher order function.
Atau contoh lain Kita pernah memakai setTimOut
setTimeOut(function (){
console.log('hello world")
}, 100)
Parameter pertama nya adalah function Dan parameter kedua nya yaitu integer untuk menyimpan millisecond , parameter pertama nya adalah function atau callback sehingga set time out bisa Kita sebut dengan higher order function.
Atau contoh lainnya
const tombol = document.querySelector('.selesai')
tombol.addEventListener('click', function (){
console.log('tombol ditekan')
})
Ada event nya apa lalu callback nya apa , ini juga bisa disebut higher order function
Dan contoh lainnya ketika Kita mempunyai sebuah function yang return value nya yaitu function
function ucapSalam(waktu) {
return function (nama) {
console.log(`hallo ${nama}, selamat ${waktu}, semoga harimu menyenangkan`)
}
}
let selamatmalam = ucapSalam ('malam')
console.dir(selamatmalam('gimasn'));
Terus kenapa Kita harus menggunakan higher order function ads beberapa alasannya
Abtraksi
Untuk membuat agar code yang Kita buat itu bisa lebih sederhana atau bisa lebih simpel karena dengan function itu Kita menyembunyikan sebuah kerumitan Karena katanya semakin besar sebuah program semakin tinggi sebuah komoleksitas nya ,maka semakin membibgung Kan programer nya
Ada anekdot seperti ini
"Ada Dua Cara untuk merancang sebuah software ,Cara pertama yaitu membuat program sesederhana mungkin sehingga jelas jelas tidak Ada kekurangan nya, yang kedua Kita membuat program sekomplek mungkin sehingga tidak Ada kekurangan yang jelas"
Dengan terbiasa Kita membuat sesuatu kedalam function itu Kita Masuk kesebuah pendekatan yang namanya functional programming
Contoh higher order function
1.Array.prototype.map()
2.Array.prototype.filter()
3.Array.prototype.reduce()
Komentar
Posting Komentar