下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JSpubsub 3 varpubsub=; (function (q) var topics = , subUid = -q.publish = function (topic, args) if(!topicstopic) return false;setTimeout(function () var subscribers = len = subscribers ? subscribers.length : while (len-) subscriberslen.func(topic,args);, return 正文(版本一介pubsub.subscribe(example1,func
2、tionpubsub.subscribe(example1,function(topics,data) console.log(topics + : + data);pubsub.publish(example1, hello world!); pubsub.publish(example1,test,a,b,c);pubsub.publish(example1,color:blue,text:hello q.subscribe = function (topic, func) if (!topicstopic) topicstopic=;vartoken=(+subUid).toString
3、(); token:token, func: funcreturn q.unsubscribe=function(token) for (var m in topics) if (topicsm) for(vari=0,j=topicsm.length;ij;i+) if (topicsmi.token = token) topicsm.splice(i,1); return token;return functionObserver() this.fns = ;functionObserver() this.fns = ;Ototype = subscribe:function(fn)uns
4、ubscribe: function (fn) this.fns=this.fns.filter(function (el) if(el!=fn) return el;update: function (o, thisObj) varscope=thisObj|window; function (el) vartestSubscription=pubsub.subscribe(example1,function(topics, data) console.log(topics + : + pubsub.publish(example1, hello world!); pubsub.publis
5、h(example1,test,a,b,c);pubsub.publish(example1,color:blue,text:hello setTimeout(function, pubsub.publish(example1,helloagain!(thiswillfail);版本filterforEachfilterforEachif (!Atotype.forEach) Atotype.forEach=function(fn,thisObj)var scope = thisObj | for(vari=0,j=this.length;ij;+i) fn.call(scope, thisi
6、, i, this);if (!Atotype.filter) Atotype.filter=function(fn,thisObj) var scope = thisObj | window;var a = for(vari=0,j=this.length;ij;+i) if (!fn.call(scope, thisi, i, this) el.call(scope, var o = new var f1 = function (data) console.log(Robbin: + datavar f2 = function (data) console.log(Randall: + d
7、atao.update(Tomf1 o.update(Tom2blogger user2blogger userobserver.make 2 var observer = addSubscriber: function (callback) this.subscribersthis.subscribers.length=callback;removeSubscriber: function (callback) for(vari=0;ithis.subscribers.length;i+) if (this.subscribersi = callback) delete publish: f
8、unction (what) for (var i = 0; i this.subscribers.length; i+) if (typeof this.subscribersi = function) omake: function (o) for (var i in this) oi = thisi; o.subscribers=;return 版本使用方法就比较简单了,订阅不同的回调函数,以便可以注册到不同的观察者对象里(可以同时注册到多个观察者对象里var tom = read: 使用方法就比较简单了,订阅不同的回调函数,以便可以注册到不同的观察者对象里(可以同时注册到多个观察者对象
9、里var tom = read: function (what) console.log(Tomvar mm = show: function (what) console.log(mm/ 订阅 blogger.recommend(123);/调用发布blogger.recommend(456); user.vote(789); /调用发布jQuery版var blogger = recommend: function (id) varmsgduduid; var user = vote: function (id) varmsg!ID=id; jQuery1.7on/off jQuery j
10、Query1.7on/off jQuery 3 function handle(e, a, b, c) e是事件对象,不需要关注 console.log(a + b + c);$.subscribe(/some/topic, $.publish(/some/topic, a, b, c); $.unsubscribe(/some/topic, handle); $.subscribe(/some/topic,function(e,a,b,c) console.log(a + b + c);$.publish(/some/topic, a, b, c); (function ($) var o = $.subscribe = function () o.on.apply(o,arguments);$.unsubscribe = function () o.off.apply(o, $.publish = function () o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年扎囊县第二批公开招聘城市社区工作者10人备考题库完整答案详解
- 2026年国投曹妃甸港口有限公司招聘备考题库及参考答案详解1套
- 2026年北京师范大学宁德实验学校公开招聘教师的备考题库及完整答案详解一套
- 丹东2025年辽宁丹东市中心医院招聘27人笔试历年常考点试题专练附带答案详解
- 东莞广东东莞市汽车技术学校临聘人员(电教员)招聘笔试历年难易错考点试卷带答案解析
- 上饶2025年上饶市广丰区第二批事业单位选调14人笔试历年备考题库附带答案详解
- 上海中国福利会老年福利发展中心招聘笔试历年典型考点题库附带答案详解
- 高中地理教学中GIS技术应用的教学创新课题报告教学研究课题报告
- 2026长江产业集团校园招聘笔试参考题库附带答案详解
- 2026四川长虹虹微科技有限公司先进技术研发中心招聘7人笔试参考题库附带答案详解
- 2025年六年级上册道德与法治期末测试卷附答案(完整版)
- 雨课堂在线学堂《西方哲学-从古希腊哲学到晚近欧陆哲学》单元考核测试答案
- IPC7711C7721C-2017(CN)电子组件的返工修改和维修(完整版)
- 学堂在线 雨课堂 学堂云 研究生学术与职业素养讲座 章节测试答案
- 文旅项目立项报告
- 生理学期中考试试题及答案
- 京张高铁现场观摩会整体策划方案
- 安捷伦1200标准操作规程
- 合伙人合同协议书电子版
- 离婚协议书下载电子版完整离婚协议书下载三篇
- 磨床设备点检表
评论
0/150
提交评论