ES8 的 Object.getOwnPropertyDescriptors()

阅读时长 4 分钟读完

在前端开发中,我们经常需要创建对象并设置对象的属性描述符。在 ES8 中,新增了 Object.getOwnPropertyDescriptors() 方法,可以从一个属性描述符模板对象中创建一个新的对象,同时还可以获取对象的属性描述符。

什么是属性描述符

在 JavaScript 中,每个属性都有一个描述符,描述属性的特性。属性描述符由以下四个特性组成:

  • value:属性的值。
  • writable:属性是否可写。
  • enumerable:属性是否可枚举。
  • configurable:属性是否可配置。

Object.getOwnPropertyDescriptors() 方法

Object.getOwnPropertyDescriptors() 方法返回指定对象所有自身属性(非继承属性)的属性描述符。可以用来获取对象的属性描述符,或者从属性描述符模板对象中创建一个新的对象。

参数

  • obj:需要获取属性描述符的对象。

返回值

返回值是一个对象,包含指定对象所有自身属性的属性描述符。

示例

-- -------------------- ---- -------
----- --- - -
  ----- -----
  ---- ---
  --- ---------- -
    ------ ----------------------------
  -
--

----- ----------- - --------------------------------------
-------------------------

输出结果如下:

-- -------------------- ---- -------
-
  ----- -
    ------ -----
    --------- -----
    ----------- -----
    ------------- ----
  --
  ---- -
    ------ ---
    --------- -----
    ----------- -----
    ------------- ----
  --
  --------- -
    ---- ---------- --- ----------
    ---- ----------
    ----------- -----
    ------------- ----
  -
-

从属性描述符模板创建对象

除了用 Object.getOwnPropertyDescriptors() 方法获取对象的属性描述符,还可以从一个属性描述符模板对象中创建一个新的对象。

参数

  • proto:新对象的原型对象。
  • descriptors:新对象的属性描述符模板对象。

返回值

返回一个新的对象,该对象的原型对象为 proto,属性描述符由 descriptors 指定。

示例

-- -------------------- ---- -------
----- ----------- - -
  ---------- -
    ---------------------------------
  -
--

----- ----------------- - -
  ----- -
    ------ -----
    --------- -----
    ----------- -----
    ------------- ----
  --
  ---- -
    ------ ---
    --------- -----
    ----------- -----
    ------------- ----
  -
--

----- ------ - -------------------------- -------------------
--------------------
------------------

输出结果如下:

总结

Object.getOwnPropertyDescriptors() 方法可以用来获取对象的属性描述符,或者从属性描述符模板对象中创建一个新的对象。这个方法在前端开发中非常有用,可以帮助我们更方便地创建对象并设置属性描述符。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66092e8ed10417a2227a27d0

纠错
反馈