var Obj = function(){}; var X = new Obj();
X = null
能正确清除内存吗?
这样做是否等同?
var Obj = function(){};
var X = {};
X.obj = new Obj();
delete(X.obj);
编辑 尽管删除X.obj不会立即清除内存,但它会帮助垃圾收集。如果我不删除X.obj,则仍将存在指向对象的指针,因此GC可能不会清理它。
虽然我选择了@delnan的答案,但如果您正在阅读此文章,您也应该注意一下Benubird的文章。
我还注意到我最初错误地写成了delete(X)而不是delete(X.obj)- 抱歉。