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