JavaScript Object.getOwnPropertyDescriptor() 方法

Object.getOwnPropertyDescriptor() 语法

Object.getOwnPropertyDescriptor() 是 JavaScript 的一个静态方法,它用于返回一个对象,该对象包含了指定对象 “某个” 属性的配置信息(如 value、configurable、enumerable、writable)。

语法:

Object.getOwnPropertyDescriptor(obj, prop)

说明:

Object.getOwnPropertyDescriptor() 方法接收以下 2 个参数。

  • obj(必选):是一个对象。
  • prop(必选):是 obj 的一个属性,它是字符串形式或 Symbol。

在 ES6+ 中,如果 obj 不是对象(如字符串等基本类型),则会被强制转换为对象。例如 Object.getOwnPropertyDescriptor("foo", 0) 会返回字符串 "foo" 第 0 个字符的描述符。

注意:

  • getOwnPropertyDescriptor() 是一个静态方法,它只能被类名(即 Object)调用,而无法被实例调用。
  • getOwnPropertyDescriptor() 方法只会返回自有属性的描述符,而不会沿着原型链查找继承属性。

Object.getOwnPropertyDescriptor() 摘要

属于 JavaScript Object 对象
使用频率
官方文档 查看
MDN 查看

Object.getOwnPropertyDescriptor() 示例

接下来,我们通过一个简单的例子来讲解 Object.getOwnPropertyDescriptor() 方法是如何使用的。

示例 1:Object.getOwnPropertyDescriptor() 基本用法

const person = {
    name: "Jack",
    gender: "男"
};

const desc = Object.getOwnPropertyDescriptor(person, "name");
console.log(desc.value);
console.log(desc.configurable);
console.log(desc.enumerable);
console.log(desc.writable);

运行结果如下。

Jack
true
true
true

Object.getOwnPropertyDescriptor() 与 Object.getOwnPropertyDescriptors() 的区别

Object.getOwnPropertyDescriptor() 只包含单个属性的配置信息,而Object.getOwnPropertyDescriptors() 包含了所有属性的配置信息。

示例 2:Object.getOwnPropertyDescriptor() vs Object.getOwnPropertyDescriptors()

const person = {
    name: "Jack",
    gender: "男"
};

const desc1 = Object.getOwnPropertyDescriptor(person, "name");
console.log(desc1.value);

const desc2 = Object.getOwnPropertyDescriptors(person);
console.log(desc2.name.value);

运行结果如下。

Jack
Jack
给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号