JavaScript 銷燬物件
Habdul Hazeez
2023年1月30日
2022年5月1日
本文將教你如何在 JavaScript 中銷燬物件。
使用 JavaScript 將物件放置在名稱空間
中
當你將一個物件放在一個 namespace
中時,你可以使用 delete
關鍵字來銷燬這樣一個物件。
首先,設定一個名稱空間
物件。之後,這個 namespace
的屬性之一應該是你要刪除的物件,並使用 delete
關鍵字來銷燬該物件。
JavaScript 垃圾收集器將刪除該物件。結果,你將無法再訪問它。
但是,刪除 namespace
物件的嘗試將失敗。那是因為你不能在 JavaScript 中直接刪除一個物件。
我們在下面的程式碼中將 profileDetails
放置在 namespace
物件中。你可以使用 delete
關鍵字刪除 profileDetails
物件。
在使用 delete
關鍵字之前,我們確保物件存在於 namespace
中。
程式碼:
// Define the namespace
let nameSpace = {};
// Add an object to the namespace
nameSpace.profileDetails = {
first_name: "Habdul",
last_name: "Hazeez",
field_of_study: "Computer Science"
}
// Check that the object exists in nameSpace
console.log("Before deletion: ", nameSpace.profileDetails);
if (delete nameSpace.profileDetails) {
console.log("After deletion: Object Destroyed");
}
// Confirm deletion
if (!nameSpace.profileDetails) {
console.log("Confirm deletion: The object profileDetails does not exist in nameSpace.");
} else {
console.log("The object profileDetails was not deleted.");
}
輸出:
Before deletion:
Object { first_name: "Habdul", last_name: "Hazeez", field_of_study: "Computer Science" }
After deletion: Object Destroyed
Confirm deletion: The object profileDetails does not exist in nameSpace.
提醒一下,delete
關鍵字不適用於 namespace
物件。
delete nameSpace;
輸出:
false
使用 JavaScript 將物件變數引用設定為 null
如果變數指向一個物件並將其設定為 null
,你將無法訪問該物件。因此,JavaScript 垃圾收集器將刪除該物件。
在以下程式碼示例中,變數 userName
指向一個物件。我們現在可以通過 userName
變數訪問該物件。
但是,如果我們將 userName
變數設定為 null
,你將無法再訪問該物件。導致刪除物件並釋放記憶體。
程式碼:
let userName = {
id: 1,
position: 2
}
console.log("Before deletion: ", userName);
// Set the object reference to null
userName = null;
// Check if we can reach the object
console.log("After deletion: ", userName);
輸出:
Before deletion: Object { id: 1, position: 2 }
After deletion: null
Author: Habdul Hazeez
Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.
LinkedIn