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

为什么foo上有set方法obj就无法使用set方法给自己设值呢

构造一个obj对象的时候他自己的属性应该都是空的吧

其他的属性都是原型链上的吧

那set方法是怎么给新构造出来的obj对象赋值的呢

正在回答

2 回答

视频中是get方法,obj是foo的实例,它本身是没有z属性的,当obj.z = 10赋值时程序发现obj并没有z这个属性,于是就像上查找foo的原型属性z,并且这个z的属性值是被get方法暴露出来的,是不能被改变的,只能通过set方法改变,你要obj的z能设置属性就要给z设置一个set方法就可以了,Object.definedProperty(obj, 'z', {set: function(val){return val}})

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

qq_谜离_03319966 提问者

非常感谢!
2017-04-24 回复 有任何疑惑可以回复我~

你说的是obj.prototype吧,obj.prototype是不允许修改,配置和枚举的

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

举报

0/150
提交
取消

为什么foo上有set方法obj就无法使用set方法给自己设值呢

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