Javascript 如何释放XMLHttpRequest对象,以及如何释放ActiveXObject(“Microsoft.XMLHTTP”)对象?

Javascript 如何释放XMLHttpRequest对象,以及如何释放ActiveXObject(“Microsoft.XMLHTTP”)对象?,javascript,Javascript,如何释放XMLHttpRequest对象,以及如何释放ActiveXObject(“Microsoft.XMLHTTP”)对象 Grae将引用设置为null应该可以释放内存。JavaScript让您不必须显式释放对象。您可以使用delete variablethattholdtheobject或variablethattheobject=null,但这只会将对象的引用计数减少1 可能还有其他对该对象的引用。简而言之,让GC为您处理这个问题,因为您无论如何都不能强制它 关于您的评论 delete将

如何释放XMLHttpRequest对象,以及如何释放ActiveXObject(“Microsoft.XMLHTTP”)对象


Grae

将引用设置为
null
应该可以释放内存。

JavaScript让您必须显式释放对象。您可以使用
delete variablethattholdtheobject
variablethattheobject=null
,但这只会将对象的引用计数减少
1

可能还有其他对该对象的引用。简而言之,让GC为您处理这个问题,因为您无论如何都不能强制它

关于您的评论

delete
将删除变量,从而删除对该变量所指向对象的引用

var foo = 4;
foo; // 4
foo = null;
foo; // null
delete foo;
foo; // ReferenceError 

不过,这只会将引用计数减少1。在对象的引用计数达到0之前,GC不会收集该对象。因此,如果某个地方有一个
仍然指向该对象,它将不会被收集。

删除和将该对象设置为null有什么区别?将其设置为
null
只会将变量的值设置为null,
delete
将删除该变量本身。我将用一个小例子来更新我的答案。我认为出于我的目的,我最好只是将变量设置为null。这是最快最好的解决方案。我认为null应该是最好的,因为delete会做额外的工作。我只想根据需要删除对象。