直接贴代码了,这是一种最最最基本的观察者模式,用户只有订阅了此消息,才能在消息发布的时候接收到。
// 消息发布中心
var lk = {
actionUsers: [],
addUser: function (user) {
var obj = {
user: user,
action: this.callBack
};
this.actionUsers.push(obj);
},
msgPublish: function (msg) {
for (var i = 0; i < this.actionUsers.length; i++) {
var obj = this.actionUsers[i];
var user = obj.user;
var action = obj.action;
action.call(user, msg);
}
},
callBack: function (msg) {
console.warn('消息成功发布给-' + this.name + ',消息内容是:' + msg);
}
}
// 创建用户
var st1 = {name: '小西'};
var st2 = {name: '小黄'};
// 用户订阅
lk.addUser(st1);
lk.addUser(st2);
// 发布消息
lk.msgPublish('明天大家都不要来上班了,因为太热了。');因为今天(5月24日)北京气温创下了40度新高,所以在这里发布一条高温预警,哈哈…

发表评论