function Observer() {
this.fns = [];
}
Observer.prototype = {
subscribe : function(fn) {
this.fns.push(fn);
},
unsubscribe : function(fn) {
this.fns = this.fns.filter(
function(el) {
if ( el !== fn ) {
return el;
}
}
);
},
fire : function(o, thisObj) {
var scope = thisObj || window;
this.fns.forEach(
function(el) {
el.call(scope, o);
}
);
}
};
var fn = function() {};
var o = new Observer;
o.subscribe(fn);
o.fire('here is my data');
o.unsubscribe(fn);
我无法理解这背后的整个概念。我想在我的项目中实现这种模式。我有一个表单被提交的视图,它调用一个 WebService 并返回给我响应。
如果我必须在我的项目中实现这个,这是一个简单的请求和响应......我将如何处理它?我知道当有变化时你会通知你的观察者......让我向我的 API 发出请求,然后我得到响应......现在我希望它通过可观察模式得到通知给我的视图