> Dep对象
usage:
dep = new Dep();
> 静态属性
target: watcher的一个实例
> 实例属性和方法
id : 唯一标识,number
subs: 存放订阅者watcher列表;
addSub(watcher): 添加一个watcher到subs列表中
remove(watcher) : 从subs中移除订阅者watcher
depend() : 无参数,通过Dep.target.addDep(this)方式将
dep添加到Dep.target.newDeps列表中,而Dep.target.addDep中调用dep.addSub(this)将Dep.target添加到dep.subs列表中
notify(): 无参数; 发布通知;dep.subs.forEach(watcher => watcher.update())
> 操作Dep.target的方法:
Dep.target = null
const targetStack = [];
pushTarget(watcher) : watcher推入targetStack,在赋值Dep.target = watcher
popTarget(watcher) : 弹出最后一项,并赋值Dep.target = targetStack.pop()