js设计模式中发布与订阅实现观察者模式例子
2013-10-22 23:30
916 查看
<script> var pubsub = {}; (function(q) { var topics = {}; subuid = -1; q.publish = function(topic, args) { if(!topics[topic]) { return false; } var subs = topics[topic], len = subs.length; while(len--) { subs[len].func(topic, args); } return this; } q.sub = function(topic, func) { if(!topics[topic]) { topics[topic] = []; } var token = ++subuid; topics[topic].push({ token: token.toString(), func: func }) return token; } q.ubsub = function(token) { for(var m in topics) { if(topics[m]){ for(var i=0, j=topics[m].length; i<j;i++) { if(topics[m][i].token == token) { topics[m].splice( i, 1 ); return token; } } } } return this; } })(pubsub); </script> <script id="test_data"> var topic = 'test/index'; pubsub.sub(topic, function() {alert(arguments[1])}) pubsub.publish(topic, 2) pubsub.ubsub(0); pubsub.publish(topic, 2) </script>
相关文章推荐
- JS设计模式 - 观察者模式与发布/订阅模式
- JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
- Java 设计模式之观察者模式(发布/订阅模式)
- js 发布订阅/观察者模式
- 设计模式初探-观察者模式(OBSERVER)又称发布-订阅(Publish-Subscribe)依赖(Dependents)
- 《Head First 设计模式》例子的C++实现(2 观察者模式)
- javascript设计模式学习之八_发布订阅(观察者)模式
- 设计模式-观察者模式实现例子(ruby)
- 十六 设计模式之观察者模式(发布订阅模式)
- Java设计模式之观察者模式(发布/订阅模式)
- java笔记--设计模式之观察者(订阅/发布)模式
- 自实现观察者模式(发布/订阅模式)的一个隐藏bug
- JS设计模式之观察者模式实现实时改变页面中金额数的方法
- Js实现订阅发布模式(让你的代码写得贼六)
- PHP设计模式之JS实现观察者模式
- node.js笔记之订阅发布设计模式
- js发布——订阅模式的通用实现及取消订阅
- 学习笔记-js发布/订阅模式的简单实现
- 设计模式之观察者模式(发布-订阅模式publish/Subscribe)
- 设计模式之观察者模式(订阅模式),jquery实现