6

有人可以给我一个很好的用例,说明何时使用 Object.defineProperty()、Object.prototype.property 和 Object.property。

4

1 回答 1

5

想象一下,我们有一个person对象,其age属性值为20

Object.defineProperty() 方法直接在对象上定义新属性,或修改对象上的现有属性,并返回该对象。

Object.defineProperty(obj, prop, descriptor)

这与普通的赋值运算符有何不同?

person.age = 25与标准分配 ( )相比,它使您可以更好地控制创建属性。除了设置值之外,您还可以在此处Object.defineProperty() 页面中指定是否可以删除或编辑属性。

几个例子

要向此人添加无法使用赋值运算符更改的姓名字段:

Object.defineProperty(person, "name", {value: "Jim", writable: false})

或更新年龄属性并使其可编辑:

Object.defineProperty(person, "age", {value: 25, writable: true}).

Object.prototype.property 和 Object.property 都指访问对象的属性。这就像使用(您也可以使用)访问对象的age属性personperson.ageperson["age"]

于 2015-08-04T18:56:11.707 回答