let Person = { name:'yue', sex:'male', age:14};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});try{ person.sex='female';}catch(e){ console.log(e);}finally{}
1 回答
已采納

八神光
TA貢獻12條經驗 獲得超14個贊
你的代碼里并沒有不讓修改sex呀,只是修改sex會不生效而已。
如果不允許修改sex的話,可以這么改
set(target,?key,?value)?{ ??if?(key?===?'sex')?{ ????throw?new?Error('不可以修改sex') ??}?else?{ ????target[key]?=?value; ??}? }
添加回答
舉報
0/150
提交
取消