自定义一个PubSub(发布订阅)模式
实现发布订阅模式主要是处理每一个事件的事件处理器清单
var PubSub = {handlers: {}}
// 实现监听方法
PubSub.on = function(eventType, handler){
if (!(eventType in this.handlers)) {
this.handlers[eventType] = []
}
this.handlers[eventType].push(handler)
}
以上就是实现on方法的基本思路,下面实现emit方法
PubSub.emit = function(eventType){
// 获取传入给事件处理器数据参数
var handlerArr = Array.prototype.slice.call(argument,1)
for (var i = 0; i < this.handlers[eventType].length; i++) {
this.handlers[eventType][i].apply(this, handlerArr)
}
return this;
}