问答详情
源自:4-4 [JavaScript]get/set方法

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

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

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

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

提问者:qq_谜离_03319966 2017-03-09 12:54

个回答

  • feiger
    2017-04-23 22:52:53
    已采纳

    视频中是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}})

  • qq_D调_6
    2017-03-10 11:33:03

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