Jquery ajax请求后释放内存

Jquery ajax请求后释放内存,jquery,Jquery,在ajax请求之后,您可以这样做来释放内存吗 function Ajax(){ this.url = null; this.data = null; this.success = null; this.global = true; this.timeout = JSON_TIMEOUT; this.cache = false; this.dataType = 'json'; this.type = 'post'; var

在ajax请求之后,您可以这样做来释放内存吗

function Ajax(){
    this.url = null;
    this.data = null;
    this.success = null;

    this.global = true;
    this.timeout = JSON_TIMEOUT;
    this.cache = false;
    this.dataType = 'json';
    this.type = 'post';

    var _this = this;

    this.send = function(){
        var jqxhr = $.ajax({
                url : this.url,
                data : this.data,
                timeout : this.timeout,
                cache : this.cache,
                dataType : this.dataType,
                type : this.type,
                global : this.global
                }
            )
            .success(this.success)
            .error(function(){
                Dialog.set_error({
                    headline : Lang.get('HDL_ERROR'),
                    body : Lang.get('ERR_TIMEOUT'),
                    btns : [
                        {
                            value : Lang.get('BTN_OK'),
                            script : function(){},
                            focus : true
                            }
                        ]
                    })
                })
            .complete(function(){
                    delete _this;
                });
    };
}

否。
delete
不会释放内存,它会从对象中删除属性。如果您在
var
上调用它(正如您所做的那样),它没有任何效果

JavaScript是一种垃圾收集语言。当不再有任何对象引用时,对象消耗的内存将自动回收。循环引用是自动处理的(因此,即使
A
引用
B
B
引用
A
,只要没有其他引用
A
B
,它们都可以回收)

在某些浏览器上,您遇到的问题是使用非JavaScript对象的循环引用(我正在关注您,Microsoft)。如果您有一个引用对象(比如函数)的DOM元素,并且该对象也引用了DOM元素,在IE上,即使没有其他对象引用这些对象,它们也永远不会被回收。但你的例子似乎不是这样


(这是我在上文中关于
delete
的陈述:如果从对象中删除的属性恰好引用了一个没有其他引用的对象,那么删除该属性将使该对象可以回收。但这是一个副作用,而且,
delete
只与属性相关,而不是变量。)JavaScript运行自己的垃圾收集器。这意味着你不需要(也不能)对此做任何事情


加深你的好奇心。

JavaScript是内存管理的。你为什么要自己“释放”内存?