JavaScript - Reflect.ownKeys() 方法



Reflect.ownKeys() 方法用于返回对象的所有自有属性键的数组,包括不可枚举的属性。它类似于 Object.getOwnPropertyNames() Object.getOwnPropertySymbols() ,因为它从这两个方法的组合输出中创建一个数组。当您需要迭代对象的每个属性时,无论其可枚举性如何,此方法都很有用。

它也可以用于检索字符串键和符号键,这是 Object.keys() 无法完成的。Object.keys()Reflect.enumerate() 包含继承的属性,而 Reflect.ownKeys() 则不包含。

语法

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


 Reflect.ownKeys( obj )

参数

此方法只接受一个参数。相同的描述如下 -

  • obj - 从中获取自己的键的目标对象。

返回值

此方法返回目标 oject 自己的属性键数组。

示例 1

让我们看看下面的例子,我们将在具有字符串 keys 的对象上使用 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

考虑另一个场景,我们将使用 non-enumerable 属性。


<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>

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