proxy相當(dāng)于是一個預(yù)處理操作,可以把它當(dāng)成是一個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的方法,即每次獲取值的時候調(diào)用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"