数据代理:A对象包含B对象,B对象包含C
未使用数据代理:A访问C A->B->C
使用数据代理后:A访问C A->C
// 被代理的数据
const myData = {
name: 'orign',
age: 1
}
//代理商
const proxyData = {
}
for (const item in myData) {
Object.defineProperty(proxyData, item, {
get() { //被访问时触发
console.log('get');
return myData[item]
},
set(val) { //修改时触发
console.log('set');
return myData[item]=val
}
})
}
proxyData.age=3
console.log(proxyData.age);