Object.defineProperties()
Object.defineProperties() 静态方法直接在对象上定义新属性或修改现有属性,然后返回该对象。
¥The Object.defineProperties() static method defines new or
modifies existing properties directly on an object, returning the object.
Try it
语法
参数
¥Parameters
obj-
要定义或修改属性的对象。
props-
一个对象,其键表示要定义或修改的属性的名称,其值是描述这些属性的对象。
props中的每个值必须是数据描述符或访问器描述符;不能两者兼而有之(更多详细信息请参阅Object.defineProperty())。数据描述符和访问器描述符可以选择包含以下键:
configurable-
true当且仅当该属性描述符的类型可以更改并且该属性可以从相应的对象中删除时。默认为false。 enumerable-
true当且仅当该属性在相应对象的属性枚举过程中出现时。默认为false。
数据描述符还具有以下可选键:
value-
与属性关联的值。可以是任何有效的 JavaScript 值(数字、对象、函数等)。默认为
undefined。 writable-
true当且仅当与属性关联的值可以通过 assignment operator 更改时。默认为false。
访问器描述符还具有以下可选键:
get-
充当属性的 getter 的函数,如果没有 getter,则为
undefined。函数的返回值将用作属性的值。默认为undefined。 set-
充当属性 setter 的函数,如果没有 setter,则为
undefined。该函数将接收分配给属性的新值作为其唯一参数。默认为undefined。
如果描述符没有
value、writable、get和set键,则将其视为数据描述符。如果描述符同时具有value或writable和get或set键,则会引发异常。
返回值
示例
使用 Object.defineProperties
规范
| Specification |
|---|
| ECMAScript Language Specification # sec-object.defineproperties |
浏览器兼容性
BCD tables only load in the browser