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>

當我們執行上述指令碼時,輸出視窗將彈出,在網頁上顯示文字。

廣告