let uid = 0; export default class Dep { constructor() { this.id = uid++; this.subs = []; } addSub(sub) { this.subs.push(sub); } removeSub(sub) { remove(this.subs, sub); } depend() { if (window.target) { window.target.addDep(this); } }; removeSub(sub) { const index = this.subs.indexOf(sub); if (index > -1) { return this.subs.splice(index, 1); } } notify() { const subs = this.subs.slice(); for (let i = 0, l = subs.length; i < l; i++) { subs[i].update(); } } }