2019-10-16 seo達(dá)人
測試代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button id="btn">按鈕</button>
<script>
let btn = document.getElementById("btn");
btn.onclick = () => { // 鉤子函數(shù)
console.log('我是鉤子函數(shù)');
}
btn.addEventListener("click",() =>{ // 回調(diào)函數(shù)
console.log('我是回調(diào)函數(shù)');
});
// 這是給btn綁定了一個監(jiān)聽器,后面那個函數(shù)是它的回調(diào)函數(shù),
// 因為消息捕獲的過程我們并不能參與,而在捕獲執(zhí)行完畢的時候,
// 回調(diào)函數(shù)才會執(zhí)行,我們可以把對消息的處理寫在回調(diào)函數(shù)里。
</script>
</body>
</html>
點(diǎn)擊按鈕后代碼輸出如下:
回調(diào)函數(shù)和鉤子函數(shù)的區(qū)別根本上是
鉤子函數(shù)在捕獲消息的第一時間就執(zhí)行,而回調(diào)函數(shù)是捕獲結(jié)束時,最后一個被執(zhí)行的。
什么是鉤子函數(shù)
一般認(rèn)為,鉤子函數(shù)就是回調(diào)函數(shù)的一種,其實還是有差異的,差異地方就是:觸發(fā)的時機(jī)不同。
鉤子(Hook)概念源于Windows的消息處理機(jī)制,通過設(shè)置鉤子,應(yīng)用程序?qū)λ邢⑹录M(jìn)行攔截,然后執(zhí)行鉤子函數(shù)。
什么是回調(diào)函數(shù)
回調(diào)函數(shù)其實是調(diào)用者將回調(diào)函數(shù)的指針傳遞給了調(diào)用函數(shù),當(dāng)調(diào)用函數(shù)執(zhí)行完畢后,通過函數(shù)指針來調(diào)用回調(diào)函數(shù)。
鉤子函數(shù)和回調(diào)函數(shù)都是事件處理函數(shù)
藍(lán)藍(lán)設(shè)計( www.wnxcall.com )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 、平面設(shè)計服務(wù)。
藍(lán)藍(lán)設(shè)計的小編 http://www.wnxcall.com