模拟vue的数据劫持
将vm._data 中的数据劫持,对data中的数据做处理,让每个属性中都有setter和getter方法,从而可以做到数据响应,实现mvvm
const data = {
a: 1,
b: 2
}
const obs = new Observer(data);
function Observer(obj){
let keys = Object.keys(obj)
keys.forEach(item => {
Object.defineProperty(this, item, {
get(){
return obj[item]
},
set(val){
obj[item] = val
}
})
})
}
console.log(obs)