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 に答える