JavaScript - Reflect.deleteProperty() 方法



Reflect.deleteProperty() 方法提供了一種從物件中刪除屬性的方式。它類似於 delete 運算子,但它是一個方法而不是一個運算子。Reflect.deleteProperty() 在屬性成功刪除時返回 true,刪除失敗時返回 false,這與 delete 運算子相反,後者返回一個布林值,指示屬性是否被正確刪除。

Reflect.deleteProperty() 相對於 delete 運算子的主要優點在於它在刪除失敗時的行為。如果刪除不被允許,它會丟擲一個錯誤,而不是默默地忽略。

語法

以下是 JavaScript Reflect.deleteProperty() 方法的語法:

Reflect.deleteProperty( target, propertyKey )

引數

此方法接受兩個引數。如下所述:

  • target - 要從中刪除屬性的目標物件。

  • propertyKey - 表示要刪除的屬性名稱的字串或符號。

返回值

此方法返回一個布林值,指示屬性是否已成功刪除。

示例

示例 1

讓我們看下面的例子,我們將使用 Reflect.deleteProperty() 從物件中刪除屬性。

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

如果我們執行上面的程式,它將在網頁上顯示文字。

示例 2

考慮另一個場景,我們將刪除一個不存在的屬性並觀察輸出。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         const x = {
            a: 1,
            b: 2,
            c: 3
         };
         document.write(Reflect.deleteProperty(x, 'd'), " < br > ");
         document.write(JSON.stringify(x));
      </script>
   </body>
</html>

執行上述指令碼後,它將在網頁上顯示文字。

示例 3

在下面的示例中,我們將把 Reflect.deleteProperty() 用於條件語句中。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         const x = {
            a: 11,
            b: 22,
            c: 33
         };
         const y = 'c';
         if (Reflect.deleteProperty(x, y)) {
            document.write(`Successfully deleted property ${y}`);
         } else {
            document.write(`Failed to delete property ${y}`);
         }
      </script>
   </body>
</html>

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

廣告