javascript内存管理 - 删除复杂对象

时间:2014-04-10 23:56:48

标签: javascript memory-management javascript-objects

我有一个包含大量数据的大对象。它的结构是这样的:

myObject = {

   "key1": Array1[256] , // this is array of objects
   "key1": Array2[2048],
    .
    .
    .
}

我想现在重置此对象(将其设置为{})。在我这样做之前,我想要取消分配所有内存。这样做的正确方法是什么?

如果我说删除myObject;它会删除所有内容吗?或者我实际上必须删除每个键的数组。或者更进一步,我是否还必须删除每个键的数组中的每个对象?

如果你能指出一些关于这个主题的好的参考资料,那就太棒了。

感谢。

1 个答案:

答案 0 :(得分:1)

如果你执行delete myObject;,它绝对不会做任何事情,因为delete会删除对象的属性。 JavaScript有垃圾收集;将此对象设置为{}的方法就是这样做:

myObject = {};

如果要修改现有引用(即其他指向对象的内容),您可以delete每个键:

for (var k in myObject) {
    delete myObject[k];
}

顺便使用严格模式。它使事情变得更加健全,包括delete