proxy
Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。
举个栗子:
let obj = {
name:"zhufeng",age:"20"};
//让proxy1代理obj 需要通过proxy1去操作代理的obj
let proxy1 = new Proxy(obj,{
get(target,key,proxy){
//target :目标对象
//key :属性名
//proxy :实例
console.log("get拦截");
//return 什么就获取什么
return target[key];//20
}
});
//get 只要是获取 就会触发get 例如:proxy1.name
console.log(proxy1.age);//目标对象
get
get方法用于拦截某个属性的读取操作,可以接受三个参数,依次为目标对象、属性名和 proxy 实例本身(严格地说,是操作行为所针对的对象),其中最后一个参数可选。get(target, propKey, receiver) 拦截对象属性的读取,
var person = {
name: "张三"
};
var proxy = new Proxy(person, {
get: function(target, propKey) {
if (propKey in target) {
return target[propKey];
} else {
throw new <