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

Postingan populer dari blog ini

ethical hacking part 14 membuat malware Trojan

CSS layouting - box model: CSS reset

ethical hacking part 3 reconnaissance & information gethering