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

先说钩子函数:

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

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

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

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

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

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

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

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

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

    一般认为,钩子函数就是回调函数的一种,其实还是有差异的,差异地方就是:触发的时机不同. 先说钩子函数: 钩子(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. JavaScript高级day01-PM【对象、函数、回调函数、IIFE、this、关于语句分号问题、webstorm代码模板、复习】

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

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

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

  8. 细说PHP笔记03(第7章)--数组与数据结构,数组定义,数组遍历,数组内部指针遍历,键值操作函数,统计数组函数,回调函数处理数组元素,数组排序,拆分、合并、分解、结合数组,数组实现堆栈,随机选取元素

    1.数组 索引数组:索引值是整数 关联数组:索引值是字符串 2.数组的定义 1.以直接赋值的方式声明 $数组名[下标]=资料内容 或 $数组名[关联字符串(键值)]=资料内容 <?php $va ...

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

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

最新文章

  1. flannel 概述 - 每天5分钟玩转 Docker 容器技术(58)
  2. opencv通道拆分与合并:split和merge
  3. python json.loads()中文问题-python处理json数据中的中文
  4. 认真工作的原因以及方法
  5. 计算机设备全年销量excel,计算机二级MS-OFFICE考试EXCEL题型汇总附答案.pdf
  6. mysql的调试与分析_mysql日志管理分析调试实例_MySQL
  7. android requestmtu,android - 如何设置/获取/请求从Android到iOS或反之亦然BLE的MTU? - 堆栈内存溢出...
  8. 聚合 aggregate
  9. 聚合函数查询 group by having
  10. 没有找到MSVCP71.dll,迅雷5无法进行离线下载,P2P Seacher无法连入emule网络
  11. explode php,php中的explode()函数实例介绍
  12. bootlogo画面制作和替换
  13. 不知道如何做好精益生产管理?可能是你的企业还没有进行工时分析
  14. html中嵌入flvplayer.swf播放器,播放视频
  15. 跨境电商erp管理系统
  16. Mac破解软件 “XXX”意外退出 奔溃解决方法
  17. 服务器中的虚拟化是什么意思,虚拟化是什么意思
  18. 一个筛选键引起电脑键盘失灵的命案
  19. 1449异常 mysql_mysql异常-UncategorizedSQLException 1449
  20. 黄褐斑激光-百花净斑方

热门文章

  1. 帝国CMS7.5默认首页模板太难看,如何修改首页模板样式
  2. php 读 cookies,正确解读PHP读取Cookies的方法_PHP教程
  3. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
  4. java键盘监听事件代码_JavaScript监听键盘事件代码实现
  5. 移远 LTE Cat.M1/Cat.NB1 BG36 模组简介和实际应用方向详解
  6. 【C#设计模式】4-0. 简单工厂模式【创建型】
  7. Java对接阿里云号码隐私保护
  8. MM ABAP采购资讯记录批量删除
  9. Web报表系统葡萄城报表:报表系统
  10. DELL显示器刷新频率调到75进桌面黑屏,解决办法:启动VGA模式