钩子函数和回调函数的区别
生活随笔
收集整理的這篇文章主要介紹了
钩子函数和回调函数的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一般認為,鉤子函數就是回調函數的一種,其實還是有差異的,差異地方就是:觸發的時機不同。
先說鉤子函數:
鉤子(Hook)概念源于Windows的消息處理機制,通過設置鉤子,應用程序對所有消息事件進行攔截,然后執行鉤子函數。
let btn = document.getElementById("btn"); btn.onclick = () => {console.log("i'm a hook"); }上面的例子,在按鈕點擊時候立即執行鉤子函數。而看下面的例子:
btn.addEventListener("click",() =>{console.log(this.onclick);//undefined });給btn綁定了一個監聽器,只有消息捕獲完成之后才能觸發回調函數。
很明顯的差別就是:鉤子函數在捕獲消息的第一時間就執行,而回調函數是捕獲結束時,最后一個被執行的。
回調函數其實是調用者將回調函數的指針傳遞給了調用函數,當調用函數執行完畢后,通過函數指針來調用回調函數。而鉤子函數在消息剛發出,沒到達目的窗口前就先捕獲了該消息,先得到控制權執行鉤子函數,所以他可以加工改變該消息,當然也可以不作為,還可以強行結束該消息。
總結
以上是生活随笔為你收集整理的钩子函数和回调函数的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android socket 发送byt
- 下一篇: 心在哪裡行動力就在那裡 戴晨志