JS钩子的机制与实现
[什么是钩子]
接触过WordPress的朋友都知道,WP的程序中可以执行类似钩子的函数,当然是这PHP实现的钩子。在JAVASCRIPT中一样可以实现类似的功能。
用一句话来形容一下:钩子是将需要执行的函数或者其他一系列动作注册到一个统一的入口,程序通过调用这个钩子来执行这些已经注册的函数。
[为什么要用钩子]
很多朋友都会写一些函数,类似window.onload、$(document).ready等,而且一个页面不止一处写到类似的函数,如何让这些需要执行的函数在一个统一的入口执行(即页面只需要执行一个类似window.onload的函数)?
这时我们可以借助HOOK来实现,(以window.onload为例)将所以需要在页面加载的时候执行函数都注册到一个入口,如:
01.
function
func1()
02.
{
03.
// ....
04.
}
05.
function
func2()
06.
{
07.
// ....
08.
}
09.
hooks.addAction(
"loaded"
, func1);
// 添加函数
10.
hooks.addAction(
"loaded"
,
"func2"
);
上面表示在loaded钩子上挂了两个函数。然后执行这个钩子,如:
1.
window.onload =
function
()
2.