Skip to content
Go back

发布订阅模式

var PubSub = {
	subscribe: function(ev, callback) {
		this._callbacks = this._callbacks || {};
		this._callbacks[ev] = this._callbacks[ev] || [];
		this._callbacks[ev].push(callback);
		return this;
	},
	publish: function() {
		var args = Array.prototype.slice.call(arguments, 0);
		var ev = args.shift();
		if (!this._callbacks) {
			return this;
		}
		if (!this._callbacks[ev]) {
			return this;
		}
		var list = this._callbacks[ev];
		for (var i = 0; i < list.length; i++) {
			list[i].apply(this, args);
		}
		return this;
	}
};
PubSub.subscribe('tc', function() {
	console.log('tc', arguments);
});
PubSub.publish('tc', 1, 2);

Share this post on:

Previous Post
MVC和类