Object.defineProperty()
方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。
1 | var o = {}; // 创建一个新对象 |
⚠️ 数据描述符和存取描述符不能混用
Writable 属性
当 writable
属性设置为 false
时,该属性被称为“不可写”。它不能被重新分配。
⚠️普通模式不会抛出异常,严格模式抛出异常“read-only”
Enumerable 特性
enumerable
定义了对象的属性是否可以在 for...in
循环和 Object.keys()
中被枚举。
Configurable 特性
configurable
特性表示对象的属性是否可以被删除,以及除writable
特性外的其他特性是否可以被修改。
一般的 Setters 和 Getters
1 | var pattern = { |