SOURCE

class Subscribe {
  constructor() {
    this.observers = []
    this.state = ''
  }
  attach(...rest) {
    this.observers.push(...rest)
  }
  setState(newState) {
    this.observers.forEach(o => o.update(newState))
  }
}

class Observer {
  constructor(name, callback) {
    this.name = name
    this.callback = callback
  }
  update(newState) {
    this.callback(newState)
  }
}

var sub = new Subscribe()
var observer1 = new Observer('小米', function(msg) {
    console.log('执行', msg)
})
var observer2 = new Observer('小高', function(msg) {
    console.log('执行111111', msg)
})
sub.attach(observer1)
console 命令行工具 X clear

                    
>
console