首页 > delete操作能释放内存吗

delete操作能释放内存吗

var a = {b:{c:'d'}};

delete a.b;

此时之前为对象{c: 'd'}分配的内存会自动被回收吗?


如果不用delete,只是做a.b = null, 并且a.b没有被其他变量引用,效果一样吗?


你得看其是否有被其它变量引用过了

var a = {b:{c:'d'}};
delete a.b;

a的b属性将被删除,因为b属性之前对应的对象没有被其它变量引用,
所以JS引擎会在合适的时候GC {c:'d'}对应的内存

如果

var a = {b:{c:'d'}};
var _a_=a.b;
delete a.b;

a的b属性将被删除,但是{c:'d'}对象就不会被清除掉,因为还有_a_引用它

JS的GC回收机制是自动进行的,delete删除操作执行后并不意味为GC会马上执行~~


http://www.cnblogs.com/enein/archive/2012/08/23/2651312.html

没细看,撸主去看看吧

【热门文章】
【热门文章】