JavaScript 銷燬物件

Habdul Hazeez 2023年1月30日 2022年5月1日
  1. 使用 JavaScript 將物件放置在名稱空間
  2. 使用 JavaScript 將物件變數引用設定為 null
JavaScript 銷燬物件

本文將教你如何在 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
Habdul Hazeez avatar Habdul Hazeez avatar

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

相關文章 - JavaScript Object