释放Javascript对象使用的内存

5 javascript arrays garbage-collection

我应该自己释放分配的内存,还是有一种垃圾收集器?

可以在JavaScript中使用以下代码吗?

function fillArray()
{
  var c = new Array;
  c.push(3);
  c.push(2);
  return c;
}

var arr = fillArray();
var d = arr.pop()
Run Code Online (Sandbox Code Playgroud)

谢谢

Nol*_*rin 8

引自Apple JavaScript编码指南:

使用删除语句.每当使用新语句创建对象时,请将其与delete语句配对.这可确保与对象关联的所有内存(包括其属性名称)都可用于垃圾回收.删除语句将在"释放对象"中进行更多讨论.

这表明您使用delete命令然后允许垃圾收集器释放为您Array使用它时分配的内存.该delete语句仅删除引用的要点值得注意,因为它与C/C++中的行为不同,后者没有垃圾收集并delete立即释放内存.

  • 请记住,"删除"操作符实际上并不"删除"对象 - 它只是删除对象的引用,以便JavaScript的垃圾收集器可以轻松地看到该对象不再被使用.有关更多信息,请参阅以下问题:http://stackoverflow.com/questions/742623/deleting-objects-in-javascript. (3认同)