function EventEmitter() {
this.events = {};
}
//绑定事件函数
EventEmitter.prototype.on = function(eventName, callback) {
this.events[eventName] = this.events[eventName] || [];
this.events[eventName].push(callback);
};
//触发事件函数
EventEmitter.prototype.emit = function(eventName, _) {
var events = this.events[eventName],
args = Array.prototype.slice.call(arguments, 1),
i, m;
if (!events) {
return;
}
for (i = 0, m = events.length; i < m; i++) {
events[i].apply(null, args);
}
};
on进行事件注册,emit事件触发。
这种设计模式的优点:便于管理。缺点:代码比较隐晦,不清晰。