proxy相当于是一个预处理操作,可以把它当成是一个json的方法的扩充。
var pro = new Proxy({
add: function (val) {
return val + 10;
},
name: 'I am twy'
}, {
get:function(target,key,property){
console.log('come in Get');
console.log(target,key);
return target[key];
}
});
// 输入:
pro.name
// 输出:
come in Get
{name: "I am twy", add: ƒ}
I am twy
上面的是添加了get的方法,即每次获取值的时候调用get下面的方法,接下来我们添加set的方法:
var pro = new Proxy({
add: function (val) {
return val + 10;
},
name: 'I am twy'
}, {
get:function(target,key,property){
console.log('come in Get');
console.log(target,key);
return target[key];
},
// 添加的set在这里:
set:function(target,key,value,receiver) {
console.log(`setting ${key} = ${value}`);
return target[key] = value;
}
});
// 测试一下:
pro.name = 'twy'
// 输出:
setting name = twy
"twy"