class Dep { //主题对象
constructor(){
this.subs = [] //订阅者列表
}
notify(){ //所有的订阅者更新
this.subs.forEach(sub => {
sub.update()
})
}
}
class Sub { //订阅者
constructor(data){
this.data = data;
}
update(){ //订阅者的更新方法, 也可自定义更新方法
this.data = this.data + 1;
console.log(this.data);
}
}
var dep = new Dep();
dep.subs.push(new Sub(1), new Sub(2));
var pub = { //发布者
publish(){
dep.notify()
}
}
pub.publish();