let proxy = new Proxy(被代理对象,处理对象)
//被代理对象
let obj = {
name:
'
jack',
age: 18
}
//通过proxy来新建代理对象
//Proxy的构造函数需要传入被代理对象 以及相关的处理对象
//对于handler他是对于所有的属性进行操作
//get在获取属性的时候调用 他返回的结果就是你接收的结果
//set对于设置属性的时候调用
let proxy = new Proxy(obj,{
//目标对象(被代理对象) 属性(实际访问的属性) 代理对象(当前proxy)
get(target,attribute,proxyObj){ //这个里面返回的值就是当前的获取值
console.log('调用了get');
if(attribute == 'name'){
return '姓名为'+target[attribute]
}else if(attribute == 'age'){
return target[attribute]+'岁'
}
return target[attribute]
},
//目标对象(被代理对象) 属性(实际访问的属性)值 代理对象(当前proxy)
set(target,attribute,value,proxyObj){
console.log('调用了set');
target[attribute] = value
},
//定义属性 赋值新的属性 目标对象 属性名 属性的详情信息
defineProperty(target,attribute,descriptor){
console.log('新的属性定义');
},
//删除属性 delete的时候
deleteProperty(target,attribute,proxyObj){
console.log('删除属性');
delete target[attribute]
}
})