双向绑定时通过发布订阅getter和setter结合函数劫持object.defineProperty的原理来实现的。
首先需要对属性进行监听,当监听的属性发生改变时,会告知订阅者是否需要更新,若更新
就执行相应的监听回调,从而渲染视图。