JavaScript设计模式学习——Observer
来源:互联网 发布:淘宝阿里旅行人工电话 编辑:程序博客网 时间:2024/04/20 03:53
function Publisher(){
this.subscribers = [];
}
Publisher.prototype.deliver = function(data){
this.subscribers.forEach(function(fn){
fn(data);
});
return this;
}
Function.prototype.subscribe = function(publisher){
var that = this;
var alreadyExists = publisher.subscribers.some(function(el){
if (el == that)
return;
});
if (!alreadyExists) {
publisher.subscribers.push(this);
}
return this;
}
Function.prototype.unsubscribe = function(publisher){
var that = this;
publisher.subscribers = publisher.subscribers.filter(function(el){
if (el !== that) {
return el;
}
});
return this;
};
var publisherObject = new Publisher;
var observerObject = function(data) {
// process data
console.log(data);
// unsubscribe from this publisher
arguments.callee.unsubscribe(publisherObject);
};
observerObject.subscribe(publisherObject);
- JavaScript设计模式学习——Observer
- 学习:java设计模式—Observer模式
- 学习:java设计模式—Observer模式
- 设计模式学习笔记——Observer观察者模式
- 设计模式学习笔记——观察者(Observer)模式
- 设计模式学习笔记(七)—Observer观察者模式
- Java学习之道:java设计模式—Observer模式
- 设计模式学习—观察者模式(Observer Design Pattern)
- 设计模式—Observer Pattern
- 委托、事件与Observer设计模式——学习笔记
- 设计模式——观察者模式 Observer
- 设计模式——观察者模式(Observer )
- 设计模式——观察者模式(Observer)
- Java设计模式—观察者模式(Observer)
- 设计模式之 — Observer 观察者模式
- JAVA设计模式—观察者模式(Observer)
- 设计模式—观察者模式(Observer)
- Java设计模式—Observer模式
- Python中的文件管理
- 分享ASP.NET视频系列教程——第一讲 Visual Studio 2008说明
- java 图片加密
- 大观园中的女儿国
- 使用Hibernate获取最大值(max)的三种方法(转载)
- JavaScript设计模式学习——Observer
- phpize简介
- 想开发搜索的人必读的文章(www.lucene.com.cn)
- 巴掌下面出地位(3)
- Asp连接sql2000数据库案例
- C#中容易忽略的一些概念
- C++的四种cast操作符的区别--类型转换
- Microsoft所提供的数据访问技术
- STRUTS和SPRING的几种整合方案的讨论