今天碰到了这样一个有关观察者模式的问题:
题目:有一个对象a,然后有一个属性props,当我的props变化后,b输出props变化
然后自己觉得代码应该如下:
var PubSub = (function() {
var eventObj = {};
var props = 1;
//订阅
var subscribe = function(event, fn) {
var props = arguments[0];
if(props != 1){ //监测是否变化
eventObj[event] = fn;
}
};
//发布
var publish = function(event) {
if (eventObj[event]){
eventObj[event]();
}
};
return {
subscribe: subscribe,
publish: publish
}
}());
var props2 = 2; //如果这里props2 = 1则不会输出
PubSub.subscribe(props2, function() {
console.log('props被修改为'+props2);
});
PubSub.publish(props2);
对于观察者模式其实有点理解,但是暂时还不是很懂该怎么用代码的形式写出来,不知道自己这样写是否正确,跪求大神指点
我本身是做java开发的,使用的观察者模式也是java来实现的,我换成javascript来实现下(参考下),