var data = { a: 1, b: 2 } let keys = Object.keys(data) for(let i=0;i<keys.length;i++){ var newObj = {} Object.defineProperty(obj,keys[i],{ getter: function(){ //收集依赖 watcher() }, setter: function(){ //触发变更 Dep.notify() } }) } watcher(){ } class Dep{ notify(){ } }