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)