您的位置:首页 > 其它

观察者模式

2013-10-31 15:44 239 查看
function EventTarget(){
this.handlers = [];
}
EventTarget.prototype={
constructor:EventTarget,
addHandler:function(type,handler){
if(typ
4000
eof this.handlers[type] == 'undefined'){
this.handlers[type] = [];
}
this.handlers[type].push(handler);
},
fire:function(event){
if(!event.target){
event.target = this;
}
if(this.handlers[event.type] instanceof Array){
var handlers = this.handlers[event.type];
for(var i=0,len=handlers.length;i<len;i++){
handlers[i](event);
}
}
},
removeHandler:function(type,handler){
if(this.handlers[type] instanceof Array){
var handlers = this.handlers[type];
for(var i=0,len=handlers.length;i<len;i++){
if(handlers[i] === handler){
break;
}
}
handlers.splice(i,1);
}
}
}
function handlerMessage(event){//观察者1
alert("Message receive:"+event.message);
}
function handlerMessage2(event){//观察者2
alert("Message2 receive:"+event.message);
}
var 主体 = new EventTarget();
主体.addHandler("message",handlerMessage);
主体.addHandler("message",handlerMessage2);
主体.fire({type:'message',message:'hello world'});
主体.removeHandler("message",handlerMessage2);
主体.fire({type:'message',message:'hello world'});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: