阅读量:0
JavaScript对象的属性描述符是用来描述对象属性特性的对象。每个对象属性都有一组特性,包括:可写性(writable),可枚举性(enumerable),可配置性(configurable)和值(value)。
属性描述符有两种类型:数据描述符和访问器描述符。
数据描述符:
- value:属性的值。
- writable:属性的值是否可写入(true/false)。
- enumerable:属性是否可枚举(true/false),即是否可通过for…in循环遍历。
- configurable:属性是否可配置(true/false),即是否可通过delete删除或修改特性。
访问器描述符:
- get:属性的 getter 函数,获取属性值时调用。
- set:属性的 setter 函数,设置属性值时调用。
- enumerable:属性是否可枚举。
- configurable:属性是否可配置。
可以通过Object.getOwnPropertyDescriptor(obj, prop)方法获取属性描述符。例如:
const obj = { name: 'John', age: 25 }; const descriptor = Object.getOwnPropertyDescriptor(obj, 'name'); console.log(descriptor);
输出结果为:
{ value: 'John', writable: true, enumerable: true, configurable: true }
这个例子展示了如何获取对象属性的描述符。可以看到,name属性是可写入、可枚举和可配置的。