定义: 指一个多用途的回调函数列表对象,提供了一种强大的方法来管理回调函数列对。
这一方法为 jQuery 内部许多功能的实现建立了基础功能,比如 还有我们将要介绍的 函数。
对于这一方法的使用其实还是有很多细节的。
对于方法本身,由于它管理着一个函数列对,你现在可以想象它就是这个样子:
它管理着这些函数,所以我们可以有 ,等操作,这里将来演示:
执行结果为:
可以看到我们可以使用方法为容器中添加函数,使用删除容器中的指定函数,使用方法时会自动调用这个容器中的所有函数。
我们除了上述的基本使用之外,还可以再创建容器的时候添加一些特性让其使用时具备某种性质。
支持的特性有:
once:容器中的所有回调函数都只执行一次。memory:缓存上一次fire时的参数值,当add()添加回调函数时,直接用上一次的参数值立刻调用新加入的回调函数。unique: 一个回调只会被添加一次,不会重复添加。stopOnFalse: 某个回调函数返回false之后中断后面的回调函数。
具体演示如下,首先对进行演示:
这里调用了两次方法,默认容器中的回调函数都会被执行两次,但是由于添加了特性,所以最终只执行了一次:
下面演示特性:
可以看到添加函数后并没有再次执行但是就已经执行了:
接下来是特性:
这里添加了两次 函数,但是由于使用了特性所以实际上容器中只有一个 函数,所以执行结果为:
最后一个特性是:
这里添加了三个函数,但是由于使用了特性并且在第二个函数的内部返回结果为,所以就会停止对后面的回调函数的执行,所以执行结果为:
有些时候,我们甚至可以将这些特性组合使用,可以达到一些特殊的效果,这里不再演示。
了解完该方法的使用方法及其特性后,让我们一起走进源码一探究竟:
其中调用了一个 函数,该函数用于格式化用户传进来的特性参数为对象形式。其实现如下:
解读完源码后我们要对 有更加明确的认识,他就是可以创建一个函数队列,我们可以为其中添加回调函数,删除回调函数等,最后可以调用方法去依次执行队列中的所有函数。另外我们可以为容器添加一些特性,来控制容器的特性。
如果您觉得本文的内容对您的学习有所帮助:
关键字:
jquery