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