码迷,mamicode.com
首页 > Web开发 > 详细

js观察者模式学习

时间:2016-10-17 00:04:43      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

      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观察者模式学习

标签:

原文地址:http://www.cnblogs.com/dupd/p/5968071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!