JSPropertyDescriptor

跳转到:
描述符是一个用于声明一个属性是否可以被修改,是否可以被删除,是否可以被枚举的一个对象

内容

每一个属性只拥有一个描述符对象,但是这个对象中拥有多个键值,用来描述这个属性,下表说明了描述符中可以拥有的键值.

Field Name Description
getter get 语法为属性绑定一个函数,每当查询该属性时便调用对应的函数,查询的结构为该函数的返回值
setter 如果试着改变一个属性的值,那么对应的 setter 函数将被执行
value 描述指定属性的值 , 可以是任何有效的 Javascript 值(函数 , 对象 , 字符串 ...).
configurable 当且仅当该属性的 configurable 为 true 时,该属性 描述符 才能够被改变, 同时该属性也能从对应的对象上被删除.
enumerable 描述指定的属性是否是 可枚举 的.
writable 当且仅当该属性的 writabletrue 时, value 才能被赋值运算符改变。

描述

描述符 是描述对象属性的属性 , 对象里目前存在的属性描述符有两种主要形式:数据描述符 存取描述符. 可以通过 Object.getOwnPropertyDescriptor() 函数来获取某个对象下指定属性的对应的 描述符 .

示例

下面将演示通过 Object.defineProperty() 函数定义一个对象的属性.

var language = {}; // 定义一个空对象 language

Object.defineProperty(language, 'log', { // 定义 language 对象下的 log 属性
    value : ['CN','EN'],
    writable : true,
    enumerable : true,
    configurable : true
})

此时这是一个可读可写可枚举的属性 此时我们将这三个值都设为了 true 此时上面这段代码等价于:

var language = {}; // 定义一个空对象 language

languange.log = ['CN','EN']; // 定义 language 对象下的 log 属性

文档标签和贡献者

此页面的贡献者: Syclover-HardToName
最后编辑者: Syclover-HardToName,