我必须维护一个包含30-40个属性的JavaScript对象,我每隔几秒就会更新一次.我已经读过在JavaScript中没有“释放”内存,浏览器会自动垃圾收集未使用的内存.
我的问题是:是否足以将对象本身设置为null,或者我是否需要将其所有属性设置为null然后将其设置为null?
var obj = [];
obj[prop1] = "123";
obj[prop2] = "456";
//...and so on...
// now to release the obj,is it enough if I just did:
obj = null;
最佳答案
@H_403_14@只有在不再可访问对象时才能收集该对象.您可以通过将引用该对象的所有局部变量设置为null(任何其他值也可以)以及删除(或覆盖)引用它的其他对象的任何属性来实现此目的.
删除对象自己的属性或将它们显式设置为null将不会在这方面获得任何东西:如果对象的引用本身不是,则不会将其视为“活动”.