2019-10-16 seo達(dá)人
測(cè)試代碼
<!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綁定了一個(gè)監(jiān)聽(tīng)器,后面那個(gè)函數(shù)是它的回調(diào)函數(shù),
// 因?yàn)橄⒉东@的過(guò)程我們并不能參與,而在捕獲執(zhí)行完畢的時(shí)候,
// 回調(diào)函數(shù)才會(huì)執(zhí)行,我們可以把對(duì)消息的處理寫(xiě)在回調(diào)函數(shù)里。
</script>
</body>
</html>
點(diǎn)擊按鈕后代碼輸出如下:
回調(diào)函數(shù)和鉤子函數(shù)的區(qū)別根本上是
鉤子函數(shù)在捕獲消息的第一時(shí)間就執(zhí)行,而回調(diào)函數(shù)是捕獲結(jié)束時(shí),最后一個(gè)被執(zhí)行的。
什么是鉤子函數(shù)
一般認(rèn)為,鉤子函數(shù)就是回調(diào)函數(shù)的一種,其實(shí)還是有差異的,差異地方就是:觸發(fā)的時(shí)機(jī)不同。
鉤子(Hook)概念源于Windows的消息處理機(jī)制,通過(guò)設(shè)置鉤子,應(yīng)用程序?qū)λ邢⑹录M(jìn)行攔截,然后執(zhí)行鉤子函數(shù)。
什么是回調(diào)函數(shù)
回調(diào)函數(shù)其實(shí)是調(diào)用者將回調(diào)函數(shù)的指針傳遞給了調(diào)用函數(shù),當(dāng)調(diào)用函數(shù)執(zhí)行完畢后,通過(guò)函數(shù)指針來(lái)調(diào)用回調(diào)函數(shù)。
鉤子函數(shù)和回調(diào)函數(shù)都是事件處理函數(shù)
藍(lán)藍(lán)設(shè)計(jì)( m.820esy.cn )是一家專(zhuān)注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶(hù)體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)。
藍(lán)藍(lán)設(shè)計(jì)的小編 http://m.820esy.cn