原理
利用访问器属性(如下)实现数据属性变化到view变化的映射,set用于在数据发生变化时加入相应的数据带view的处理方法
Object.defineProperty(obj, "hello", {
get: function () {return sth},
set: function (val) {/* do sth */}
})
设计模式
- 订阅/发布模式(subscribe&publish)
- 观察者模式
Observer是一种设计模式,其中一个对象(称为主题)根据它(观察者)维护一个对象列表,自动通知它们状态的任何变化。
当主体需要通知观察者有关发生的有趣事情时,它会向观察者广播通知(其中可以包括与通知主题相关的特定数据)。
当我们不再希望某个观察员被注册的主题通知其变化时,主体可以将其从观察员名单中删除。