摘要:无参方式定义对象无参方式很容易处理,只要执行和方法即可。研究源码是发现,这个地方确实存在传参的问题,于是动手改造了一下。这两行代码改造好之后就可以正常传参了。
无参方式
var cb = $.Callbacks(), // 定义Callbacks对象 fn1 = function(){ alert("fn1"); }, fn2 = function(){ alert("fn2"); }; cb.add( a,b ); cb.fire();
无参方式很容易处理,只要执行 add 和 fire 方法即可。
有参方式var cb = $.Callbacks(), // 定义Callbacks对象 fn1 = function( param ){ alert(param); }, fn2 = function(param){ alert(param); }; cb.add( a,b ); cb.fire("fn1","fn2");
这个时候你会发现,弹出了两次fn1,并不是自己期待的结果,感觉这里jq存在bug,测试中使用的是jq-2.1.4的版本。研究源码是发现,这个地方确实存在传参的问题,于是动手改造了一下。
第一处改造:源码:
改后的代码:
注意3099行代码的区别。
第二处改造:源码:
改造后的代码:
注意3207代码的区别。
这两行代码改造好之后就可以正常传参了。在执行 fire 方法时,可以接受 fire("fn1","fn2",....) 或者 fire(["fn1","fn2",....]);
只是做了简单的测试,如果有其他jq功能模块有异常,欢迎大家指出来,谢谢大家
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/88320.html
摘要:源码学习之的通过回调实现异步,其实现核心是。回调函数队列中的函数返回时停止触发回调函数队列只能被触发一次记录上一次触发队列传入的值,新添加到队列中的函数使用记录值作为参数,并立即执行。实际是,内部则调用了在定义的局部函数。 jQuery源码学习之Callbacks jQuery的ajax、deferred通过回调实现异步,其实现核心是Callbacks。 使用方法 使用首先要先新建一个...
摘要:概念解读事件函数了解事件通常与函数配合使用,这样可以通过发生的事件来驱动函数的执行。作用用于管理函数队列。往内部队列添加的函数保持唯一,不能重复添加。调用后开放容器,添加容器的处理函数将会立即执行。 概念解读 事件函数了解Callbacks 事件通常与函数配合使用,这样可以通过发生的事件来驱动函数的执行。 原则:一个事件对应一个事件函数,在一个事件对应多个事件函数的情况下,后者会覆盖...
摘要:响应式数据是在模块中实现的我们可以看看是如何实现的。早期代码使用是进行单元测试,是事件模型的单元测试文件。模块实际上采用采用组合继承借用构造函数原型继承方式继承了其目的就是继承的,等方法。 前言 首先欢迎大家关注我的Github博客,也算是对我的一点鼓励,毕竟写东西没法获得变现,能坚持下去也是靠的是自己的热情和大家的鼓励。接下来的日子我应该会着力写一系列关于Vue与React内部原...
摘要:同时在初始化的过程中,会将主线程加载的模块中的每个方法,都绑定一个快捷方法,其方法名与模块中的函数声明保持一致,内部则使用来完成调用逻辑。 写在前面 最近正好在看web worker相关的东西,今天无意中就看到了github一周最热项目的推送中,有这么一个项目workerize,repo里的文档的描述如下: Moves a module into a Web Worker, autom...
阅读 1160·2023-04-26 02:42
阅读 1614·2021-11-12 10:36
阅读 1728·2021-10-25 09:47
阅读 1241·2021-08-18 10:22
阅读 1787·2019-08-30 15:52
阅读 1185·2019-08-30 10:54
阅读 2611·2019-08-29 18:46
阅读 3481·2019-08-26 18:27