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 使用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

你可能感兴趣的:(javascript,前端)