Object.getOwnPropertyDescriptor()

Object.getOwnPropertyDescriptor() 方法返回指定对象上一个自有属性对应的属性描述符。(自有属性指的是直接赋予该对象的属性,不需要从原型链上进行查找的属性)

该方法允许对一个属性的描述进行检索。在 Javascript 中, 属性 由一个字符串类型的“名字”(name)和一个“属性描述符”(property descriptor)对象构成。

语法

Object.getOwnPropertyDescriptor(obj, prop)

参数:

  • obj 需要查找的目标对象
  • prop 目标对象内属性名称(String类型)

返回值:

如果指定的属性存在于对象上,则返回其属性描述符对象(property descriptor),否则返回 undefined。

简单示例

var obj = {a: 0}
Object.getOwnPropertyDescriptor(obj, 'a')
// {value: 0, writable: true, enumerable: true, configurable: true}

可以看到,默认定义的属性可写,可枚举,可配置。

自定义属性描述符的示例

var obj = { get a () { return 0} }
Object.getOwnPropertyDescriptor(obj, 'a')
// {set: undefined, enumerable: true, configurable: true, get: ƒ}

使用 defineProperty() 定义的属性

var obj = {};
Object.defineProperty(obj, "a", {
  value: 0,
  writable: false,
  enumerable: false
});
Object.getOwnPropertyDescriptor(obj, "a");
// {value: 0, writable: false, enumerable: false, configurable: false}

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress