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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值