0

这是垃圾收集的好方法吗

function getFile() {
    var xhr = new XMLHttpRequest();
    xhr.onload = function() {
        //do stuff
        delete(xhr)
    };
}

然后打getFile()了几次电话

(我已经对其进行了编辑以使用功能)

完成后我将如何摆脱xhr。我只是有点困惑是否可以从自身的函数中删除 xhr

4

1 回答 1

2

您应该使用范围来为您解决问题。在 JavaScript 中,作用域是由函数语句定义的。当函数超出范围时,在函数中定义的变量将被自动删除(并且您没有在闭包中使用该变量)

所以在你的情况下:

function scope() {
  var xhr = new XMLHttpRequest();
  xhr.onload = function() {
    //do stuff
  };
}
于 2012-05-20T12:49:00.000 回答