您的位置:首页 > Web前端 > JavaScript

3)Javascript设计模式:Observer模式

2015-12-26 18:38 555 查看

Observer模式

var Observer = (function() {

var instance = null;

function Observe() {
this.events = {}
}

Observe.prototype.subscribe = function(eventName, callback) {
var actions = this.events[eventName];
if( !actions) {
actions = this.events[eventName] = [];
}
actions.push(callback);

};

Observe.prototype.publish = function(eventName) {
var args = Array.prototype.slice.call(arguments).slice(1);
var actions = this.events[eventName];
if(actions) {
for(var cb in actions) {
actions[cb].apply(null, args)
}
}
else {
console.log(eventName || '' + ' is not registered');
}
};

function returnFunction() {
if(!instance) {
instance = new Observe();
}
return instance;
}

returnFunction.toString = function() {
console.log('Use Observer() to get instance');
};

return returnFunction;

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