今天我們將說明何謂Higer order function以及JavaScript函式中的callback function和IIFE。
主要使用情境:
何謂Higher order function?
當函式內包含著另一個函示,舉例來說函示A裡頭有函示B
A(B)
此時我們就會說函示A屬於higher order function
而放在higher order function裡頭的函示就是callback function
callback function可作為參數傳遞给另一個函示,也就是舉例中的函示B
window.addEventListener('click', function(){
alert('有人在點擊畫面')
})
window代表目前程式碼正在運行的電腦視窗 (通常指瀏覽器視窗),而click代表事件,也就是滑鼠點擊
上例中的addEventListener就屬於higher order function
function (a, b){
console.log (a+b)
}
再來是IIFE的寫法:
(function (a, b){
console.log(a+b)
})(4,7)
差別在於在原先的function expression外先使用()包覆,後面再使用()呼叫函示並可傳入參數數值
IIFE適合用於此函示只需『使用一次』的情況
由於不需重複使用也就不需要函示名稱,也能防止變數名稱衝突(函示名稱不能重複)