网站开发下载功能如何实现,户网站建设整改报告,wordpress文件上传到那个文件,站长网站事件是一种叫做观察者的设计模式,观察者模式由两类对象组成#xff1a;主体和观察者。主体负责发布事件#xff0c;同时观察者通过订阅这些事件来观察该主体。拿DOM来说#xff0c;DOM就是主体#xff0c;事件处理代码便是观察者。
下面是一个自定义事件#xff0c; func…事件是一种叫做观察者的设计模式,观察者模式由两类对象组成主体和观察者。主体负责发布事件同时观察者通过订阅这些事件来观察该主体。拿DOM来说DOM就是主体事件处理代码便是观察者。
下面是一个自定义事件 function EventTarget() {this.handlers {};
}
EventTarget.prototype {constructor: EventTarget,addHandler: function (type, handler) {if (typeof 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);}}
}自定义事件的调用,addHandler() 添加事件,fire() 执行事件,removeHandler() 删除绑定的事件。 function handleMessage1(event) {console.log(111--, event.message);
}
function handleMessage2(event) {console.log(222--, event.message);
}
var target new EventTarget();
// 添加事件
target.addHandler(message, handleMessage1);
target.addHandler(message, handleMessage2);
// 执行事件
target.fire({type: message,message: hello!
})// 删除事件
target.removeHandler(message, handleMessage1);
// 执行事件
target.fire({type: message,message: holy
})