难受就摸头盖骨

浅谈-订阅发布模式

function Wechat(){
        this.state = [];
        
        //    订阅
        this.subscribe = function(obj){
            this.state.push(obj)
        };
        
        //    发布
        this.publish = function(){
            this.state.forEach(function(v){
                v.natice();
            })
        };
        
        //    取消订阅
        this.unsubcribe = function(obj){
            this.state.forEach((items,index)=>{
                if(items === obj){
                    this.state.splice(index,1)
                }
            })
        };
    }
    
    var zhangsan = {
        'name':'张三',
        natice:function(){
            console.log(this.name+'收到了新闻')
        }
    }
    
    var lisi = {
        'name':'李四',
        natice:function(){
            console.log(this.name+'收到了新闻')
        }
    }
    
    var WechatPublish = new Wechat();
    //    张三和李四订阅了
    WechatPublish.subscribe(zhangsan)
    WechatPublish.subscribe(lisi)
    
    //    微信每隔2秒发布一个新闻给订阅的人    
    setInterval(function(){
        WechatPublish.publish()
        console.log(WechatPublish.state)
    },2000)
    
    //    6秒后张三实在受不了了,一怒之下取消了订阅
    setTimeout(function(){
        WechatPublish.unsubcribe(zhangsan)
        console.log(WechatPublish.state)
    },6000)

 

posted @ 2018-03-26 21:47  longpanda_怪怪哉  阅读(176)  评论(0编辑  收藏  举报
下定决心了,要把写不出代码就摸后脑勺的习惯给改了! 如果可以~单身待解救~~