代理的意思
1.
// proxy 代理 增强对象和函数(方法) 生命周期(钩子函数) 预处理
let obj = {
add:function(val){
return val + 100;
},
name:'I am Js'
}
let pro = new Proxy({
// 对象体
add:function(val){
return val + 100;
},
name:'I am Js'
},{
// 预处理机制
// get set apply
get:function(target,key,property){ // 在取得一个属性的时候进行预先处理
console.log('come in Get');
console.log(target);
return target[key];
},
// value新值,receiver原始值
set:function(target,key,value,receiver){ // 改变值前预先处理
console.log(`setting ${key} = ${value}`);
return target[key] = value + '111';
},
});
console.log(pro.name);
pro.name = '脚本';
console.log(pro.name);
// apply
2.
let target = function(){
return 'I am Js';
}
// 预处理
let handler = {
// 方法预处理
apply(target,ctx,args){
console.log('do apply');
return Reflect.apply(...arguments);
}
}
let pro = new Proxy(target,handler);
console.log(pro());