BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #25486同步于 2014/5/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

Observer

wykm
2014/5/8镜像同步2 回复
var Observer = { subscribe: function(event, callback) { var _callbacks = this._callbacks || (this._callbacks = {}); (this._callbacks[event] || (this._callbacks[event] = [])).push(callback); return this; }, publish: function() { var args = Array.prototype.slice.call(arguments, 0); var event = args.shift(); var list; if (!(this._callbacks && (list = this._callbacks[event]))) return this; for (var i = 0, len = list.length; i < len; i++) { list[i].apply(this, args); } return this; } } Observer.subscribe("sayhi", function () { alert("Hello!"); }).subscribe("sayhi", function () { alert("Smile"); }).publish("sayhi");
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
weiyitheonly机器人#1 · 2014/5/8
观察者模式的js实现? 发自「佳邮」
wykm机器人#2 · 2014/5/9
嗯哈。不过没用闭包把_callbacks封装起来。要用闭包的话,再做单例又嫌麻烦,所以就偷懒了 【 在 weiyitheonly 的大作中提到: 】 : 观察者模式的js实现? : 发自「佳邮」