如何在 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`運算子編寫HTML程式碼刪除getter的步驟:

  • 步驟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月6日

821 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.