Object.defineProperties()方法为目标对象同时配置多个属性。javascript
Object.defineProperties(obj, props)
html
参数 | 描述 |
---|---|
obj | 目标对象。 |
props | 包含一个或多个属性配置对象的对象。 |
props对象每一个属性的配置对象包含如下几个属性:前端
- configurable : 是否能够删除目标属性或是否能够再次配置属性的特性。设置为true表示能够被删除或能够从新设置特性;设置为false,不能被能够被删除或不能够从新设置特性。默认为false。
- enumerable : 属性是否可枚举。设置为true能够被枚举;反之,不能被枚举。默认为false。
- value : 属性对应的值。
- writable : 属性的值是否能够被重写,设置为true表示可重写,反之,不可重写。默认为true
- get : 读取属性时调用的函数。默认为undefined。
- set : 设置属性时调用的函数。默认为undefined。
配置后的目标对象。java
const obj = {}; Object.defineProperties(obj, { prop1: { value: 'JavaScript', writable: true }, prop2: { value: 'ECMAScript', writable: false }, }); obj.prop1 = obj.prop2 = 'TypeScript'; console.info(obj.prop1); // TypeScript console.info(obj.prop2); // ECMAScript