JavaScript Observer Pattern
2024-08-25 12:31:51
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/
最新文章
- instanceof运算符
- const ,static,inline
- C#获取url中参数键值对的方法
- jqery validate、validate自定义验证方法 + jaery form Demo
- vim退出
- MSDN知识库_c#关键字_static
- POJ1149 PIGS
- JAVA时间日期处理类,主要用来遍历两个日期之间的每一天。
- 如何让asp.net mvc 直接运行mobile页面
- TPersistent的三个用途(读写DFM文件,Assign,RTTI),最主要还是第三个用途
- Makedown
- C++: cin
- 简单css实现input提示交互动画效果
- Java构造器的调用顺序
- Arpa’s obvious problem and Mehrdad’s terrible solution 思维
- KbmMW 认证管理器说明(转载)
- centos7 PDI(Kettle)安装
- Python WebDriver 文件上传(一)
- C++ primer第三章作业
- linux中使用wget设置参数防止中文乱码问题