使用js实现observer模式
来源:互联网 发布:江歌的室友刘鑫 知乎 编辑:程序博客网 时间:2024/05/17 07:18
在yui中,大量使用customEvent。
何为customEvent,实际就是一个观察者observer。
下面给出这个observer的实现
何为customEvent,实际就是一个观察者observer。
下面给出这个observer的实现
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<title>实现Observer模式.</title>
<script language=JavaScript>
function Observer() {
this.fns = [];
}
Observer.prototype = {
subscribe : function(fn) {
this.fns.push(fn);
},
unsubscribe : function(fn) {
this.fns = this.fns.filter(
function(el) {
if ( el !== fn ) {
return el;
}
}
);
},
fire : function(o, thisObj) {
var scope = thisObj || window;
this.fns.forEach(
function(el) {
//相当于:window.fn1(参数) 其中,参数是o.fire('xyz')中的xyz,转移成fn1和fn2执行了.
el.call(scope, o);
}
);
}
};
var o = new Observer;
var fn1 = function(p) {
alert("fn1 " + p);
};
var fn2 = function(p) {
alert("fn2 " + p);
};
o.subscribe(fn1);
o.subscribe(fn2);
o.fire('xyz');
</script>
</head>
<body>
</body>
</html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<title>实现Observer模式.</title>
<script language=JavaScript>
function Observer() {
this.fns = [];
}
Observer.prototype = {
subscribe : function(fn) {
this.fns.push(fn);
},
unsubscribe : function(fn) {
this.fns = this.fns.filter(
function(el) {
if ( el !== fn ) {
return el;
}
}
);
},
fire : function(o, thisObj) {
var scope = thisObj || window;
this.fns.forEach(
function(el) {
//相当于:window.fn1(参数) 其中,参数是o.fire('xyz')中的xyz,转移成fn1和fn2执行了.
el.call(scope, o);
}
);
}
};
var o = new Observer;
var fn1 = function(p) {
alert("fn1 " + p);
};
var fn2 = function(p) {
alert("fn2 " + p);
};
o.subscribe(fn1);
o.subscribe(fn2);
o.fire('xyz');
</script>
</head>
<body>
</body>
</html>
- 使用js实现observer模式
- 不使用委托实现Observer模式
- 使用Observer模式
- 使用Observer接口实践Observer模式
- Java 语言使用 Observer/Observable 实现简单的观察者模式
- 实现Observer模式(转载)
- java中实现observer模式
- C++实现Behavioral - Observer模式
- observer模式的简单实现
- C++实现Behavioral - Observer模式
- Observer模式实现状态监控
- Java 实现观察者(Observer)模式
- Java 实现观察者(Observer)模式
- Java 实现观察者(Observer)模式
- Observer接口实现观察者模式
- C++实现观察者(Observer)模式
- C++实现观察者(Observer)模式
- 用Delphi实现观察者模式(Observer模式)
- VC操作Word之(三)
- WPF/E初步印象(测试代码)
- VC操作Word之(四)
- vb.net中设置checkedlistbox控件指定行为disabled的初级解决方法
- RS.OPEN SQL,CONN,A,B
- 使用js实现observer模式
- 庸医,又见庸医
- 讨厌自己工作的人
- 读书笔记-《C/C++程序员实用手册》
- IT从业人员必看的10个论坛
- 央视民间寻宝出意外 百万美元古镜被摔碎
- 还是把这个博客关了吧
- SED 手册
- 从方鸿渐看钱钟书——孙 郁