每个watch属性创建一个观察者(Watcher实例),根据属性名(如person.name)生成获取属性值的方法保存在观察者的getter变量中,属性值改变后调用的函数也会保存在观察者的cb变量上。观察者初始化时,调用getter函数读取watch监听的数据(响应数据),通过data属性定义的get将观察者添加到值的依赖收集器中。varWatcher=functionWatcher(vm,expOrFn,cb,options,isRenderWatcher){this.vm=vm;...这个.cb=cb;...if(typeofexpOrFn==='function'){this.getter=expOrFn;}else{this.getter=parsePath(expOrFn);//根据属性名生成获取属性值的方法...}this.value=this.lazy?undefined:this.get();};//解析属性名functionparsePath(path){if(bailRE.test(path)){return}varsegments=path.split('.');返回函数(obj){for(vari=0;i
