有人可以给我一个很好的用例,说明何时使用Object.defineProperty(),Object.prototype.property和Object.property。
答案 0 :(得分:2)
想象一下,我们有一个person
对象,其age
属性的值为20
。
Object.defineProperty()方法直接定义一个新属性 对象,或修改对象上的现有属性,然后返回 对象。
Object.defineProperty(obj, prop, descriptor)
这与普通赋值运算符有何不同?
它使您可以更好地控制创建属性而不是标准赋值(person.age = 25
)。除了设置值之外,您还可以指定是否可以删除或编辑属性以及其他更详细的内容Object.defineProperty() page。
一些例子
要向此人添加无法使用赋值运算符更改的名称字段:
Object.defineProperty(person, "name", {value: "Jim", writable: false})
或更新年龄属性并使其可编辑:
Object.defineProperty(person, "age", {value: 25, writable: true})
。
Object.prototype.property和Object.property都指访问对象的属性。这就像使用age
访问person
对象的person.age
属性一样(您也可以使用person["age"]
)