Proxy()代理后怎么修改name?為什么報錯?
{
//ES6
let Person = {
name: 'es6',
sex: 'male',
age:15
}
let person = new Proxy(Person, {
get(target, key){
return target[key];
},
set(target, key, value){
if(key !== 'sex'){
target[key] = value;
}
}
});
//讀取
console.table({
name: person.name,
sex: person.sex,
age: person.age,
});
//修改
person.name = 'es6-cname';
//讀取
console.table({
name: person.name,
sex: person.sex,
age: person.age,
});
}
2018-03-22
在Proxy代理里面set那里加個return就好了? ??
set(target,key,value){
? ? ? if(key!=='sex'){
? ? ? ?return target[key]=value;
? ? ? }
? ? }
2018-11-04
老師啊,少寫了一個return?
2018-03-19
賦值方法被代理了,應(yīng)該是 person.set(key, value),試試看?