JavaScript - Reflect.ownKeys() 方法



Reflect.ownKeys() 方法用于返回对象所有自身属性键的数组,包括不可枚举属性。它类似于 `Object.getOwnPropertyNames()` 和 `Object.getOwnPropertySymbols()`,因为它组合了这两个方法的输出结果来创建一个数组。当需要迭代对象的每个属性时,无论其是否可枚举,此方法都非常有用。

它还可以用于检索字符串和符号键,而 `Object.keys()` 无法做到这一点。`Object.keys()` 和 `Reflect.enumerate()` 包括继承属性,而 `Reflect.ownKeys()` 不包括。

语法

以下是 JavaScript Reflect.ownKeys() 方法的语法:

Reflect.ownKeys( obj )

参数

此方法只接受一个参数,如下所述:

  • obj − 获取自身键的目标对象。

返回值

此方法返回目标对象自身属性键的数组。

示例

示例 1

让我们来看下面的例子,我们将对具有字符串键的对象使用 Reflect.ownKeys()。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         const x = {
            car: 'RS6',
            model: 2024
         };
         const keys = Reflect.ownKeys(x);
         document.write(JSON.stringify(keys));
      </script>
   </body>
</html>

如果执行上述程序,它将在网页上显示文本。

示例 2

考虑另一个场景,我们将使用不可枚举属性。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         const x = {};
         Object.defineProperty(x, 'WELCOME', {
            value: 1,
            enumerable: false
         });
         document.write(JSON.stringify(Reflect.ownKeys(x)));
      </script>
   </body>
</html>

执行上述脚本后,它将在网页上显示文本。

示例 3

在下面的例子中,我们将使用 Reflect.ownKeys() 来检索数组的所有键。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         const x = ['11', '22', '33'];
         const y = Reflect.ownKeys(x);
         document.write(JSON.stringify(y));
      </script>
   </body>
</html>

当我们执行上述脚本时,输出窗口将弹出,在网页上显示文本。

广告