品易云推流 关闭
文章详情页
文章 > JavaScript > js观察者模式是什么

js观察者模式是什么

js观察者模式

头像

小妮浅浅

2021-06-18 16:55:172726浏览 · 0收藏 · 0评论

说明

1、定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。

2、包括

Subject:主体对象(状态发布者),维护观察者列表,添加或删除观察者。

Observer:观察者,知道自己观察的状态是描述的哪一个对象,提供更新操作。

实例

  class Subject {
  constructor () {
    this.state = 0;
    this.observers = [];
  }
  getState () {
    return this.state;
  }
  setState (state) {
    this.state = state;
    this.notify();
  }
  notify () {
    this.observers.forEach(observer => {
      observer.update();
    })
  }
  attach (observer) {
    this.observers.push(observer);
  }
}
 
 
class Observer {
  constructor (name, subject) {
    this.name = name;
    this.subject = subject;
    this.subject.attach(this);
  }
  update () {
    console.log(`${this.name} update, state: ${this.subject.getState()}`);
  }
}
 
let sub = new Subject();
let observer1 = new Observer('o1', sub);
let observer2 = new Observer('o2', sub);
 
sub.setState(1);

以上就是js观察者模式的介绍,希望对大家有所帮助。更多js学习指路:js教程

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图