为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的程序运行时sex可以修改成female,并不报错

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{


}


正在回答

4 回答

呵呵,开启写轮眼。不过妹子讲是不一样的。

0 回复 有任何疑惑可以回复我~

看下你的浏览器设置是不是没开报错

0 回复 有任何疑惑可以回复我~

你这个并没有修改成功,只是没有报错而已,你再输出一下 person.sex 依然还是 male,抛错自己加个throw就好了

0 回复 有任何疑惑可以回复我~

我复制你的代码运行的时候是报错的,具体报错如下:


最后补充:老师的代码里缺少return ,详细代码如下:

let Person2 = {

name: 'es6',

sex: 'male',

age: 17

};

let person2 = new Proxy(Person2, {

get(target, key) {

return target[key];

},

set(target, key, value) {

if(key !== 'sex') {

return (target[key] = value);

}

}

});

console.table({

name: person2.name,

sex: person2.sex,

age: person2.age

});

try{

person2.sex = 'female';

}

catch (e) {

console.log(e);

}

person2.age = 20;

console.table({

name: person2.name,

sex: person2.sex,

age: person2.age

});


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
ES6快速入门
  • 参与学习       64241    人
  • 解答问题       137    个

用最通俗、形象的方法描述ES6的强大并教会你正确的学习方法。

进入课程

为什么我的程序运行时sex可以修改成female,并不报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信