js观察者模式学习

      function Events(){
var obj = {};
this.on=function(key,fn){
var stack;
stack = obj[key] || (obj[key] =[]); return stack.push(fn);
}
this.off=function(key){ var stack;
return (stack=obj[key]) != null ? stack.length= : void ;//此处stack.length=0不等同于stack=[],如果设置stack=[],并不能作用于object[key]
}
this.once=function(key,fn){
this.off(key);
return this.on(key,fn);
}
this.trigger=function(){
var key,stack,i;
key = [].shift.call(arguments);
stack = obj[key]||(obj[key] = []);
for(i=;i<stack.length;i++){
stack[i].apply(this,arguments);
}
}
}
var events = new Events();
events.on("play",function(data){
console.log(data.name)
});
events.on("play",function(data){
console.log(data.age)
});
events.trigger("play",{name:"dpd",age:})
上一篇:mysql 数据操作 单表查询 通过四则运算查询


下一篇:HDU1556 Color the ball [线段树模板]