如何在 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 作為輸出。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP