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

JavaScript Observer Pattern

2016-04-27 23:16 507 查看
var Users = {
list: [],
listeners: {},
add: function(name) {
this.list.push({name: name});
this.dispatch("user-added");
},
on: function(eventName, listener) {
if(!this.listeners[eventName]) this.listeners[eventName] = [];
this.listeners[eventName].push(listener);
},
dispatch: function(eventName) {
if(this.listeners[eventName]) {
for(var i=0; i<this.listeners[eventName].length; i++) {
this.listeners[eventName][i](this);
}
}
},
numOfAddedUsers: function() {
return this.list.length;
}
}

Users.on("user-added", function(obj) {
alert(Users.numOfAddedUsers());
console.log("obj:",obj);
});

Users.add("Krasimir");
Users.add("Tsonev");


Referring to http://jsfiddle.net/krasimir/sHNKD/3/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: