如何在 JavaScript 中使用 delete 運算子刪除 getter?


在本教程中,我們將學習如何使用 JavaScript 中的 delete 運算子刪除 getter 函式。getter 函式用於獲取物件的屬性,並將屬性與 getter 函式繫結,即,每當呼叫屬性時,getter 函式也會隨之被呼叫。在一個物件上,每個名稱只能擁有一個 getter 或 setter,因為我們不能在 JavaScript 中使用相同的名稱建立多個 getter。

要在 JavaScript 中刪除 getter 函式,我們使用 delete 運算子,它使用關鍵字“delete”。

語法

使用 delete 運算子刪除 getter 函式的語法如下:

delete object_name.property
   or
delete object_name[property]

delete 運算子也可用於刪除物件的普通屬性。delete 運算子在物件中是最有用的運算子,因為它與陣列不同,不能使用 pop()splice()filter() 或任何其他方法,因此它只使用 delete 運算子來刪除物件中的任何屬性。因此,在刪除 getter 函式時,您應該非常注意不要刪除物件的普通屬性。此外,在使用此屬性刪除 setter 時,您需要注意備份 getter 函式並在刪除 setter 函式後將其恢復。

在訪問器屬性中,我們使用 getter 和 setter 兩種方法來獲取和設定物件的值,這意味著這兩種方法都可用於定義物件訪問器。getter 和 setter 屬性允許我們從物件外部獲取和設定物件屬性的值,我們也可以在不訪問物件的情況下更改值。

讓我們來看一個示例,其中我們將建立一個 getter 函式,然後在 delete 運算子的幫助下將其刪除。

步驟

在 JavaScript 中使用 delete 運算子刪除 getter 的 HTML 程式碼編寫步驟:

  • 步驟 1 - 建立一個名為 person 的物件。

  • 步驟 2 - 為物件分配一些鍵值對,例如 first_name、last_name、section 和 hair_color。

  • 步驟 3 - 現在我們使用 getter 函式建立另一個屬性,在其中我們透過呼叫其中的其他鍵值對來建立一個物件方法。

  • 步驟 4 - 為了在方法中呼叫其他鍵值對,我們使用“this”運算子。

  • 步驟 5 - 我們還將使用 return 語句返回 getter 屬性的值。

  • 步驟 6 - 現在我們列印 getter 屬性的值。

  • 步驟 7 - 現在使用 delete 運算子,使用“delete”關鍵字刪除 getter 屬性。

  • 步驟 8 - 最後,我們再次列印 getter 屬性的值以檢查它是否已刪除。

示例

我們可以使用以下程式碼在 JavaScript 中使用 delete 運算子刪除 getter:

<html>
<body>
   <script>
      var person = {
         first_name: "Aditya",
         last_name: "Chaudhary",
         section: "A",
         hair_color: "black",
         get details() {
            return "Student Details<br>" + this.first_name + " " +this.last_name + " of section " + this.section + " have " + this.hair_color+ " color hairs ";
         },
      }
      document.write( person.details);
      delete person.details;
      document.write("<br>Student details (after deletion): " +person.details);
   </script>
</body>
</html>

正如我們在輸出中看到的,當我們首先列印 getter 屬性時,它向我們顯示了 person 的所有詳細資訊,並在刪除後顯示為 undefined,這意味著 delete 運算子刪除了 getter 屬性的值。

因此,delete 運算子刪除了 getter 屬性的值,但如果我們希望在刪除後重新為 getter 屬性分配值,我們也可以這樣做,這樣它將像物件的普通屬性一樣工作。它還在第一次訪問後用資料屬性替換訪問器屬性,從而建立一個延遲初始化的資料屬性。

除了從物件中刪除鍵值對之外,delete 運算子還會返回 true 或 false 值。在大多數情況下,它返回 true,除非該屬性是非可配置屬性,在這種情況下它返回 false。

注意 − 如果我們正在從物件中刪除一個物件中不存在的屬性,那麼我們也會得到 true 作為輸出。

更新於: 2022-12-06

820 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.