共计 1003 个字符,预计需要花费 3 分钟才能阅读完成。
我的博客
首先,看到咱们的题目:
JavaScript 中的 钩子(钩子机制 \ 钩子函数 \hook) 是什么?
咱们前端的 JavaScript 中,常常提到 钩子
,毋庸置疑,那这个货色必定也尤为重要。
然而有点前端入门不久,很纳闷,这个钩子到底是什么呢?
首先,咱们的钩子,钩子机制,钩子函数,hook,都是同一个概念。
钩子(HOOK)?
对于 Windows 零碎,它是建设在事件驱动机制上的,说白了就是整个零碎都是通过消息传递实现的。hook(钩子)是一种非凡的音讯解决机制,它能够监视系统或者过程中的各种事件音讯,截获发往指标窗口的音讯并进行解决。
用来监视系统中特定事件的产生,实现特定性能,如屏幕取词,监督日志,截获键盘、鼠标输出等等。
百度给出的解释是这样的:
钩子函数是 Windows 音讯解决机制的一部分,通过设置“钩子”,应用程序能够在零碎级对所有音讯、事件进行过滤,拜访在失常状况下无法访问的音讯。钩子的实质是一段用以解决零碎音讯的程序,通过零碎调用,把它挂入零碎。
是不是感觉还是不明确,很显然,这个解释十分官网,咱们要用事实思维去形容。
说白了,钩子函数是在一个事件触发的时候,在零碎级捕捉到了他,而后做一些操作。一段用以解决零碎音讯的程序,用以解决零碎音讯的程序,是说钩子函数是用于解决零碎音讯的
两个特点:
- 是个函数,且零碎音讯触发时被零碎调用
- 非用户本人触发
回调函数与钩子
回调函数是你留了个函数,然而这个函数不是立刻执行,而是绑定了个事件。当事件触发时,主动执行函数,而非必须执行。
概念:作为参数传给另一个 JavaScript 函数的函数。
回调函数确保一段代码执行结束之后再执行另一段代码的形式。
如果还是不了解,请看:
10 张图让你彻底了解回调函数 – 知乎 (zhihu.com)
钩子函数 是好比找了个代理,监督事件是否产生,如果产生了这个代理就执行你的事件处理办法;在这个过程中,代理就是钩子函数。
- 在某种意义上,回调函数做的处理过程跟钩子函数中要调用调办法一样
- 然而!!!钩子函数个别是由 事件产生者 提供的。直白了说,它留下一个钩子,这个钩子的作用就是钩住你的回调办法。
或者,你能够认为 钩子函数就是回调函数。
钩子函数个别是在某个框架外面的叫法,是这个框架在生命周期的某个阶段触发的回调函数。
比方 Vue/React
外面就存在生命周期函数。
看 Vue
框架外面自带的一段代码,无论我写不写它就在那里,但当我调用它当前,它就会执行我参数的内容。