js设计模式至观察者模式--不同模块间解耦
来源:互联网 发布:网络舆情分析报告模板 编辑:程序博客网 时间:2024/05/22 10:25
var Observer = (function(){
var _messages = {};
return {
regist:function(type,fn){
if(typeof _messages[type] ==='undefined'){
_messages[type] = [fn];
}else{
_messages[type].push(fn);
}
},
fire:function(type,args){
if(!_messages[type])
return;
var events={
type:type,
args:args || {}
},i = 0,len = _messages[type].length;
for(; i < len ; i ++){
_messages[type][i].call(type,events);
}
},
remove:function(type,fn){
if(_messages[type] instanceof Array){
var i = _messages[type].length - 1;
for(; i >= 0 ; i -- ){
_messages[type][i] === fn && _messages[type].splice(i,1);
}
}
}
}
})();
Observer.regist('test',function(e){
console.log(e.type,e.args.msg);
});
Observer.fire('test',{msg:'console args '});
var _messages = {};
return {
regist:function(type,fn){
if(typeof _messages[type] ==='undefined'){
_messages[type] = [fn];
}else{
_messages[type].push(fn);
}
},
fire:function(type,args){
if(!_messages[type])
return;
var events={
type:type,
args:args || {}
},i = 0,len = _messages[type].length;
for(; i < len ; i ++){
_messages[type][i].call(type,events);
}
},
remove:function(type,fn){
if(_messages[type] instanceof Array){
var i = _messages[type].length - 1;
for(; i >= 0 ; i -- ){
_messages[type][i] === fn && _messages[type].splice(i,1);
}
}
}
}
})();
Observer.regist('test',function(e){
console.log(e.type,e.args.msg);
});
Observer.fire('test',{msg:'console args '});
0 0
- js设计模式至观察者模式--不同模块间解耦
- js设计模式-观察者模式
- js设计模式-----观察者模式
- JS设计模式-观察者模式
- js 设计模式学习--观察者模式
- 【js设计模式笔记---观察者模式】
- JS设计模式——观察者模式
- JS设计模式之观察者模式
- 【js设计模式笔记---观察者模式】
- JS设计模式八:观察者模式
- JS-设计模式之观察者模式
- 模式设计:观察者模式
- 设计模式-----观察者模式
- 设计模式-观察者模式
- 设计模式--观察者模式
- 设计模式:观察者模式
- 设计模式-----观察者模式
- 设计模式:观察者模式
- TCP/IP详解学习笔记(2)-数据链路层
- ActiveMQ - Exclusive Consumer 独占消费
- 计蒜客 菜鸟物流的运输网络
- TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
- mongoVUE 出现“Unable to connect to server 127.0.0.1:27017: 由于目标计算机积极拒绝,无法连接。 127.0.0.1:27017.”
- js设计模式至观察者模式--不同模块间解耦
- TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute
- HBase学习笔记(一)
- 图片与文字水平对齐
- TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节
- java-并发-Callable、Future和FutureTask
- TCP/IP详解学习笔记(6)-UDP协议
- TCP/IP详解学习笔记(7)-广播和多播,IGMP协议
- 在PyCharm上安装MySQldb的血泪史_MAC Pro