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
没细看,撸主去看看吧