一般认为,钩子函数就是回调函数的一种,其实还是有差异的,差异地方就是:触发的时机不同。

先说钩子函数:

钩子(Hook)概念源于Windows的消息处理机制,通过设置钩子,应用程序对所有消息事件进行拦截,然后执行钩子函数。

let btn = document.getElementById("btn");
btn.onclick = () => {console.log("i'm a hook");
}

上面的例子,在按钮点击时候立即执行钩子函数。而看下面的例子:

btn.addEventListener("click",() =>{console.log(this.onclick);//undefined
});

给btn绑定了一个监听器,只有消息捕获完成之后才能触发回调函数。

很明显的差别就是:钩子函数在捕获消息的第一时间就执行,而回调函数是捕获结束时,最后一个被执行的。

回调函数其实是调用者将回调函数的指针传递给了调用函数,当调用函数执行完毕后,通过函数指针来调用回调函数。而钩子函数在消息刚发出,没到达目的窗口前就先捕获了该消息,先得到控制权执行钩子函数,所以他可以加工改变该消息,当然也可以不作为,还可以强行结束该消息。

钩子函数和回调函数的区别相关推荐

  1. 【vue】钩子函数和回调函数的区别

    一般认为,钩子函数就是回调函数的一种,其实还是有差异的,差异地方就是:触发的时机不同. 先说钩子函数: 钩子(Hook)概念源于Windows的消息处理机制,通过设置钩子,应用程序对所有消息事件进行拦 ...

  2. linux钩子函数和回调函数,Linux Kernel 学习笔记10:hook函数

    (本章基于: Linux -4.4.0-37) linux 内核中有一套hook函数机制,可在不同hook点位置监控网络数据包,并执行丢弃.修改等操作.网络防火墙就是通过此机制实现的. 注册注销hoo ...

  3. C语言_钩子函数(回调函数)

    目录 1.引言 2.变量指针 3.函数指针 4.钩子函数作用 5.钩子函数使用 6.带参数的钩子函数 7 stm32 CubeMx 定时器回调函数的实现 1.引言 钩子函数.回调函数.注册函数,挂钩子 ...

  4. java中钩子函数回调函数_钩子函数和回调函数

    一般认为,钩子函数就是回调函数的一种,其实还是有差异的,差异地方就是:触发的时机不同. 先说钩子函数: 钩子(Hook)概念源于Windows的消息处理机制,通过设置钩子,应用程序对所有消息事件进行拦 ...

  5. 高阶函数和回调函数的区别

    今天看到高阶函数的概念,突然就迷不过来了,这个高阶函数和回调有什么区别呢? 高阶函数英文叫Higher-order function.那么什么是高阶函数? 刚开始学习语言我最害怕看到这种XX函数的,一 ...

  6. 将类的成员函数作为回调函数(外一篇:友元函数)

    转自:http://blog.csdn.net/xylary/article/details/1548596 将类成员函数用做C回调函数 提出问题:  回调函数是基于C编程的Windows SDK的技 ...

  7. JavaScript高级day01-PM【对象、函数、回调函数、IIFE、this、关于语句分号问题、webstorm代码模板、复习】

    笔记.视频.源码:JavaScript(基础.高级)笔记汇总表[尚硅谷JavaScript全套教程完整版] 目   录 P7 07.尚硅谷_JS高级_对象 23:30 1. 什么是对象? 2. 为什么 ...

  8. Go 学习笔记(16)— 函数(02)[函数签名、有名函数、匿名函数、调用匿名函数、匿名函数赋值给变量、匿名函数做回调函数]

    1. 函数签名 函数类型也叫做函数签名,可以使用 fmt.Printf("%T") 格式化参数打印函数类型. package mainimport "fmt"f ...

  9. 什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题?

    什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题? 参考文章: (1)什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题? (2)https://www.cnblogs.com/kzxi ...

最新文章

  1. 【Python】pymysql基础:数据库操作
  2. visual studio 代码提示_《微软模拟飞行2020》代码暗示下一代Xbox或支持VR
  3. 我在中关村,给不了的你爱的国贸(ZZ)
  4. 上大计算机专业,高校“计算机”专业排行榜,东大完成逆袭,上交大不敌哈工大...
  5. 基于stm32的GPS解析数据
  6. 用html做祝福语朋友,朋友友情祝福语
  7. h5 android 重力 晃动,H5案例分享:html5重力感应事件
  8. iOS程序破解:获取应用商店上应用的ipa程序包
  9. Mac移动硬盘分区无法装载
  10. Overload和Override
  11. Python3.5抓取代理IP并验证有效性
  12. DDOS压力测试平台源码
  13. 在centOS中安装MySQL时遇到Configuring incomplete,errors occurred该怎么办?
  14. ionic+vue+capacitor系列笔记--02项目中集成Capacitor,添加android,ios平台,真机运行项目
  15. AOSP清华镜像下载错误解决
  16. 数据库(DB)、数据库管理系统(DBMS)、MySQL、SQL之间的关系
  17. 小米手机qq或者微信分享时提示任何个人应用都无法打开此内容解决
  18. 阿里新一代微服务,内部资深架构师手抄的笔记+脑图不容错过,全是精华
  19. js获取网页文档的各种高度和宽度
  20. 数学 {自反性 `Reflexive`, 非自反性 `Irreflexive`}

热门文章

  1. python3闭包通俗解释_Python|闭包、装饰器,简单的实例,通俗的理解
  2. matlab 邻近度 离群点_MATLAB自制迷宫游戏,快来试试吧!
  3. matlab 点云特征_基于点云的3D障碍物检测
  4. matlab 图像旋转补色,旋转互补色光学错觉
  5. Confluence 6 自定义 Decorator 模板的宏和针对高级用户
  6. Swagger的简单入门【转载】
  7. 49、剑指offer--把字符串转换成整数
  8. SPSS输出的结果都要写到文章中吗
  9. LightOJ1283 Shelving Books(DP)
  10. javaWeb开发总结 ---- 前端数据插入到后台