Proxy可以对目标对象的读取,函数调用等操作进行拦截,然后进行操作处理。
let proxy=new Proxy(target,handler)
target是指目标对象,handler是指拦截处理对象。
handler一般为函数,proxy的handler有以下几种:
get(target,propKey)
target是目标对象,也就是proxy的第一个参数。propkey是指target的属性。
set(target,propKey,value)
target是目标对象,也就是proxy的第一个参数。propkey是指target的属性。value是属性的写入值。
let target={
name:"George",
age:3
}
let handler={
get:function(target,key){
console.log("getting "+key);
console.log(target[key]);
},
set:function(target,key,value){
console.log("setting ",key);
target[key]=value;
console.log(target[key]);
}
}
let proxy=new Proxy(target,handler)
proxy.name;
proxy.age=25;
apply(target,ctx,args)
用于拦截函