直接贴代码了,这是一种最最最基本的观察者模式,用户只有订阅了此消息,才能在消息发布的时候接收到。
// 消息发布中心 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度新高,所以在这里发布一条高温预警,哈哈…
发表评论