javascript - 使用delete或通过在Javascript中分配null来删除对象?

标签 javascript

如何删除Javascript中的对象以正确销毁它们(如果有的话,调用析构函数?)并防止内存泄漏?我看过两种方法:

delete obj;


obj = null;

但是即使阅读了this,我仍然不了解真正的区别和应该使用什么。

另外,我猜Javascript中没有真正的析构函数,但是在多个对象之间关系复杂的情况下,依靠垃圾收集器来防止内存泄漏真的足够了吗?

最佳答案

两者之间的主要区别是操作后obj的值。考虑

x = 42
x = null
console.log(x)  // prints: null
delete x;
console.log(x)  // prints: undefined

分配null将为现有属性赋予新值。手术后它仍然存在。当您delete一个属性时,它将被完全删除。

关于javascript - 使用delete或通过在Javascript中分配null来删除对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21192093/

相关文章:

javascript - 带有正文溢出的 Firefox CSS 转换 :hidden

javascript - 从 ajax jsonp 回调获取列表

javascript - 在 google puppeteer 上作为 evaluate 方法的参数

javascript - 注销后调用 Firebase getRedirectResult

javascript - 尝试在 node.js 中使用 promise 时出错

javascript - asset文件夹中的文件可以在webview中运行,sd卡中的文件可以在外部浏览器中运行,我想在webview和外部浏览器中运行文件

javascript if 语句多个运算符失败

javascript - 在`useEffect`中设置useEffect钩子(Hook)的依赖关系而不触发useEffect

javascript - 数组中的 getElementByID.readOnly

javascript - 用于解析的正则表达式无法正常工作