vue的Observer简化版
class Observer {constructor(value) {if (!value || typeof value !== 'object') returnthis.walk(value) }walk (obj) {Object.keys(obj).forEach(key => defineReactive(obj, key, obj[key]))}
}
function defineReactive (target, key, value) {new Observer(value) Object.defineProperty(target, key, {enumerable: true,configurable: true,get: function reactiveGetter () {return value},set: function reactiveSetter (newVal) {if (newVal === value) returnvalue = newValnew Observer(value) }})
}let observer = {name: 'observer',age: 18,tempObj: {n: 1,m: 2}
}new Observer(observer)console.dir(observer)
