<!DOCTYPE html>
<html>
<body>
<h2>1111</h2>
<script type="text/javascript">
const user = {
name:'鸣人',
age:8,
wife:{
name:'佐助',
age:20
}
}
// 把目标对象转为代理对象
// proxy(x,y)
// x:参数1,target目标对象
// y:参数2,处理器对象,用来监视数据变化及数据的操作
const proxyUser = new Proxy(user,{
get(target,prop){
console.log('get方法调用了');
return Reflect.get(target,prop) // 返回get方法
},
set(target,prop,val){
console.log('set方法调用了');
return Reflect.set(target,prop,val)// 返回get方法
},
deleteProperty(target,prop){
console.log('delete方法调用了');
return Reflect.deleteProperty(target,prop)
}
})
console.log(proxyUser.name);// 调用代理对象的get
proxyUser.name='小樱'
console.log(user)
proxyUser.sex='男'// 除了用set修改值也可以用set添加新属性-值
console.log(user)
</script>
</body>
</html>