博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模仿$.Callbacks实现
阅读量:7214 次
发布时间:2019-06-29

本文共 820 字,大约阅读时间需要 2 分钟。

            
1.add的参数兼容,比如cb.add(fn1).add(fn2)等同于add(fn1,fn2)等同于add([fn1,fn2])。 2.$.Callbacks("memory"),第一次fire,执行之前的函数队列。fire之后add的时候,就执行加入的函数。 3.$.Callbacks("unique"),add的时候判断当前函数,是否已存于执行队列中。 4.$.Callbacks("once"),第一次fire的时候,打个标记表明once了。第二次fire的时候,有once,就不执行队列。 5.$.Callbacks("stopOnFalse"),判断执行队列中函数的执行结果,为false,则中断函数队列的遍历执行。 6.$.Callbacks("memory once"),字符串对象化,使得字符串顺序变换也没关系。之后各回各家,该干嘛干嘛去。 7.$.Callbacks是一个对象工厂。 8.$.Callbacks的lock和disable的区别。lock只是不再add,但还能fire。disable不仅不能add,连fire也不行。 9.$.Callbacks的remove方法,就是从队列去除指定函数。 10.fire的时候可以指定上下文

源代码阅读这件事:

第一步,查看API。先明白这些API怎么用,因为API就是这些代码的需求。

第二步,思考为什么这么写。一个需求实现,可以有多种实现方式。但是作者偏偏用这种,是为了代码性能优化、解耦,抑或偷懒?

第三步,自己重新实现。有时候,第二步你怎么想,也想不出作者这样写的原因。自己动手重新实现,实现过程中,才更能理解作者的用心。

转载于:https://www.cnblogs.com/samwu/p/4287105.html

你可能感兴趣的文章
ASP.NET 发邮件方法
查看>>
分享:Arcadia 0.12.1 发布,Ruby 集成开发环境
查看>>
在ubuntu12.04上使用华为et127 3g上网卡
查看>>
存储类型
查看>>
Maven多模块项目中应用maven-tomcat-plugin热部署
查看>>
jQuery Callbacks
查看>>
判断安卓程序是否高危程序。
查看>>
有关YARN/MRv2 相关
查看>>
4.2 开发者选项--"电源错误报告"的适配
查看>>
Android <Android应用开发实战> 学习总结杂项
查看>>
ORACLE函数大全
查看>>
【Linux_Fedora_应用系列】_3_如何利用Smplayer播放WMV格式的文件
查看>>
错误3 error C3859: 超过了 PCH 的虚拟内存范围;请使用“-Zm120”
查看>>
树的子结构
查看>>
通过Camera进行拍照
查看>>
hdu1867之KMP
查看>>
Java中System.getProperty()的参数
查看>>
pthread_cond_wait() 函数的使用
查看>>
Crypto API
查看>>
读书笔记2013第10本:《学得少却考得好Learn More Study Less》
查看>>