Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对象数据上的JavaScript垃圾收集_Javascript - Fatal编程技术网

对象数据上的JavaScript垃圾收集

对象数据上的JavaScript垃圾收集,javascript,Javascript,我希望找到有关优化垃圾收集或防止对象在内存中累积的实践的任何信息 作为一个例子,假设我有一个连续的迭代,每次一个项目被添加到一个对象 随着时间的推移,添加到对象中的旧项与应用程序不再相关,应该从对象中删除它们,它们将不再被访问。是否有必要专门删除这些值,还是会继续累积成一个巨大的对象 谢谢大家! 如果是您的业务逻辑决定了它们的无用性,这意味着仍然存在对它们的引用,那么是的!您应该显式删除这些对象。在许多情况下,您会希望在破坏引用之前擦除对象,以确保您正在释放所有想要释放的内容 今年早些时候,Sc

我希望找到有关优化垃圾收集或防止对象在内存中累积的实践的任何信息

作为一个例子,假设我有一个连续的迭代,每次一个项目被添加到一个对象

随着时间的推移,添加到对象中的旧项与应用程序不再相关,应该从对象中删除它们,它们将不再被访问。是否有必要专门删除这些值,还是会继续累积成一个巨大的对象


谢谢大家!

如果是您的业务逻辑决定了它们的无用性,这意味着仍然存在对它们的引用,那么是的!您应该显式删除这些对象。在许多情况下,您会希望在破坏引用之前擦除对象,以确保您正在释放所有想要释放的内容


今年早些时候,Scirra的Ashley就此写了一篇很好的入门文章:

垃圾收集器永远不会删除指向的对象。如果您有
myObject=…
并且您确定不再需要它,只需设置
myObject=null
来断开链接。您不应该说
myObject=null
,只要在它超出范围时让它自动收集即可。如果您使用该对象并且它具有冗余属性,然后这些链接将不会被清除,因为您以后可能会访问它们。@jbabey当然,这会自动销毁链接。我所说的必须对全局变量执行。但更重要的是,对于JS对象和DOM对象之间的链接,应该这样做。这些可能会导致内存泄漏,尤其是在每个人最喜欢的浏览器中。@Imp或干脆不要使用全局变量!:P