class Subject{
constructor(name){
this.name=name;
this.observers=[];
this.state="";
}
attach(observer){
this.observers.push(observer);
}
setState(state){
this.state=state;
this.observers.forEach(o=>o.update(state));
console.log(this.name,state);
}
}
class Observer{
constructor(name){
this.name=name;
}
update(newState){
console.log(this.name,newState)
}
}
let sub=new Subject('小宝');
let o1=new Observer('爸爸');
let o2=new Observer('妈妈');
sub.attach(o1);
sub.attach(o2);
sub.setState('心情不好');