【发布时间】:2023-03-15 02:29:02
【问题描述】:
尝试使用访问器定义属性时出现错误。这是我的代码
变种人 = {}; Object.defineProperty(person, 'birthYear', { 价值:1997, 可写:真, 可枚举:真, 可配置:假, 设置:函数(值){ this.birthYear = 值; }, 得到:函数(){ return '出生年份 - ' + this.birthYear; } }); console.log(person.birthYear);错误文本:
属性描述符无效。不能同时指定访问器和值 或可写属性。
如果我无法定义这样的 set 和 get 方法,我该怎么做?
【问题讨论】:
-
您会删除
value,但您不想要一个检索this.birthYear的birthYeargetter,因为这会产生无限递归。您需要将值存储在其他地方,例如不同的属性名称或符号,或变量中。 -
是否有理由在一个对象上定义属性,而不是the prototype
-
...仅供参考,您可以使用
Object.create一步完成该对象的创建/定义。 -
@SamOnela 因为没有在
Object.prototype上安装任意属性,而且问题中的对象没有任何其他原型?
标签: javascript