Vue是采用数据劫持结合发布/订阅模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。
getter函数,获取object对象的属性值。
setter函数,对object对象的属性进行赋值。
发布函数,发布的时候执行相应的回调。
订阅函数,添加订阅者,传入发布时要执行的函数,可能会携额外参数。
数据劫持:Object.defineProperty来劫持对象属性的setter和getter操作,并“种下”一个监听器,当数据发生变化的时候发出通知