JavaScript Object.defineProperties()

定义和用法

Object.defineProperties() 方法用于添加或更改对象属性。

Object.defineProperties() 方法允许你更改属性的元数据。

Object.defineProperties() 方法允许你添加 getter 和 setter。

相关方法:

Object.defineProperty() 添加或修改属性。

Object.defineProperties() 添加或修改多个属性。

Object.getOwnPropertyNames() 返回对象的所有属性名。

Object.getOwnPropertyDescriptor() 返回属性的描述符。

Object.getOwnPropertyDescriptors() 返回对象所有属性的描述符。

实例

添加属性:

// 创建一个对象
const person = {
  firstName: "比尔",
  lastName: "盖茨"
};

// 添加属性
Object.defineProperties(person, {
  language: { value: "en" },
  year: { value: "Hello" }
});

亲自试一试

语法

Object.defineProperty(object, property, descriptor)

参数

参数 描述
object 必需。要编辑的对象。
property 必需。要编辑的属性。
descriptor

必需。要添加或更改的属性的描述符:

  • value: value
  • writable : true|false
  • enumerable : true|false
  • configurable : true|false
  • get : function
  • set : function

返回值

类型 描述
Object 返回传入的对象,并应用了更改。

浏览器支持

Object.defineProperties() 是 ECMAScript 5 (ES5) 的特性。

自 2013 年 7 月以来,ES5 (JavaScript 2009) 在所有现代浏览器中得到完全支持:

Chrome Edge Firefox Safari Opera
Chrome 23 IE/Edge 11 Firefox 21 Safari 6 Opera 15
2012 年 9 月 2012 年 9 月 2013 年 4 月 2012 年 7 月 2013 年 7 月