首页 > 代码库 > js观察者模式学习
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=0 : void 0;//此处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=0;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:13})
js观察者模式学习
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。