proxy(代理)简单理解为在对对象进行的'.'操作时,设定的一个过滤器,能够想象到的比较适合的使用场景是做单元测试时,验证对对象的操作。
应用示例代码:
//proxy(相当于拦截器获取之前进行操作)
var user=new Proxy({},{
//target原来的传入对象,pro参数的对象属性
get:function(target,pro){
if(pro=="info"){
return target.name+","+target.age;
}
}
})
user.name="十七";
user.age="22岁";
console.log("用户信息:"+user.info);//用户信息:十七,22岁获取到对象内容后进行判断是info不,不是则返回undefined,是info返回用户信息.
不仅仅有get,也有set(自主去设置对象内容)
//proxy(相当于拦截器获取之前进行操作)
var user=new Proxy({},{
//target原来的传入对象,pro参数的对象属性
get:function(target,pro){
if(pro=="info"){
return target.name+","+target.age;
}
},
set:function(target,pro){
target.age="25岁";
target.name="有妖气"
}
})
user.name="十七";
user.age="22岁";
console.log("用户信息:"+user.info);//打印出的对象内容是set后的proxy相当于对于获取到的对象进行过滤操作进行反馈!