ES7 之 Object.getOwnPropertyNames() 和 Object.getOwnPropertySymbols() 方法详解

阅读时长 4 分钟读完

Javascript 是一门弱类型语言,并且其对象是非常灵活的。因此,我们经常需要使用一些工具来处理和操作对象。ES7中,新增了 Object.getOwnPropertyNames()Object.getOwnPropertySymbols() 方法来处理对象。这两个方法的主要作用是获取对象中的所有属性名称,包括普通属性和 symbol 属性。

Object.getOwnPropertyNames()

Object.getOwnPropertyNames() 方法可以获取对象中的所有属性名称,包括可枚举和不可枚举的属性,但不包含 symbol 属性。其语法如下:

其中,obj 是要获取属性名称的对象。

下面是一个简单的示例,说明如何使用 Object.getOwnPropertyNames() 方法:

执行结果为:

Object.getOwnPropertyNames() 方法返回一个数组,数组中包含所有属性名称。

Object.getOwnPropertySymbols()

Object.getOwnPropertySymbols() 方法可以获取对象中的所有 symbol 属性。其语法如下:

其中,obj 是要获取属性名称的对象。

下面是一个示例,说明如何使用 Object.getOwnPropertySymbols() 方法:

执行结果为:

Object.getOwnPropertySymbols() 方法返回一个数组,数组中包含所有 symbol 属性的 key 值。

总结

Object.getOwnPropertyNames()Object.getOwnPropertySymbols() 方法可以帮助我们获取对象中特定类型的属性名称。它们对于操作对象非常有用,特别是在编写 React 组件时很有用。此外,我们还可以使用 Object.keys()Reflect.ownKeys() 方法来获取对象中的属性名称。

示例代码

下面是一个完整的示例代码,展示如何使用 Object.getOwnPropertyNames()Object.getOwnPropertySymbols() 方法:

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

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

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

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

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

纠错
反馈

程序员教程

精选优质教程,助你快速提升技术实力

程序员面试题库

海量优质面试题,助你轻松应对技术面试