将data中所有属性代理到vm上
arr:{a:1,b:2}
实现vm._data.arr = vm.arr = {a:1,b:2}
- 遍历data所有数据,调用代理函数
//将data中的属性代理到vm 上
for(let key in data){
proxy(vm,"_data",key)
}
- 代理函数proxy
function proxy(vm,data,key){
// 将key代理到vm的属性上,实现vm._data.arr = vm.arr
Object.defineProperty(vm,key{
get(){
return vm[data][key]
},
set(newValue){
vm[data][key] = newValue
}
})
}
网友评论