您的位置:首页 > 其它

一个订阅发布者模式

2016-06-15 14:28 204 查看

常见的订阅发布者模式的编写

(function(window) {
function Subscribe() {
this.events = {};
};
Subscribe.prototype.subscribe = function(eventName, fn) {
(!this.events[eventName]) && (this.events[eventName] = []);
this.events[eventName].push(fn);
return this;
};
Subscribe.prototype.unsubscribe = function(eventName, fn) {
var events = this.events;
if (eventName in events) {
delete events[eventName];
}
return this;
};
Subscribe.prototype.publish = function(eventName) {
var args = [].slice.call(arguments, 1),
events = this.events;
if (eventName in events) {
for (var i = 0, len = events[eventName].length; i < len; i++) {
events[eventName][i].apply(this, args);
}
}
return this;
};

window.Subscribe = new Subscribe();
})(window);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: