版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年智能制造成套装备项目投资申请报告代可行性研究报告
- 2023年体外诊断试剂资金申请报告
- 银行内部控制审计程序制度
- 银行档案管理制度
- 采购档案管理与保密制度
- 市级讲课比赛课件新时代的劳动者
- 梁良良教授课件:创新思维与创新方法
- 大学物资设备采购合同(进口设备)
- 房屋转让居间合同(30篇)
- 了解法律制度自觉遵守宪法
- 2024年资格考试-WSET二级认证考试近5年真题附答案
- 12J201平屋面建筑构造图集(完整版)
- 22-深化设计方案
- 2024山东高速路桥集团股份限公司校园招聘430人高频难、易错点500题模拟试题附带答案详解
- 人教版历史2024年第二学期期末考试七年级历史试卷(含答案)
- 宠物店转让接手协议书模板
- 苏教版数学小学四年级上学期试卷与参考答案(2024-2025学年)
- 20以内的加法口算练习题4000题 284
- 2021-2022学年北京市东城区部编版六年级上册期末考试语文试卷(含答案解析)
- 河口水闸工程项目施工组织设计及进度计划
- 食品安全与质量检测技能大赛考试题库400题(含答案)
评论
0/150
提交评论