认识属性描述对象

课后整理 2020-12-20

下面是属性描述对象的一个实例。

{
  value: 123,
  writable: false,
  enumerable: true,
  configurable: false,
  get: undefined,
  set: undefined
}

属性描述对象提供6个元属性。

value

value存放该属性的属性值,默认为undefined。

writable

writable存放一个布尔值,表示属性值(value)是否可改变,默认为true。

enumerable

enumerable存放一个布尔值,表示该属性是否可枚举,默认为true。如果设为false,会使得某些操作(如for/in循环、Object.keys())跳过该属性。

configurable

configurable存放一个布尔值,表示“可配置性”,默认为true。如果设为false,将阻止某些操作改写该属性,例如,无法删除该属性,也不得改变该属性的属性描述对象(value属性除外)。也就是说,configurable属性控制了属性描述对象的可写性。

get

get存放一个函数,表示该属性的取值函数(getter),默认为undefined。

set

set存放一个函数,表示该属性的存值函数(setter),默认为undefined。