Wird eine verzögerte Speicherleckage nicht behoben?

Nehmen Sie den folgenden Code an:

var deferred = $.Deferred();
deferred.done(function(){
    // do something with events, references to dom, etc...
});

deferred.fail(function(){
    // do something with events, references to dom, etc...
});

Wenn ich am Ende nie @ anruresolve() oderfail(), führt dies zu Speicherverlusten, da ich Referenzen in den Rückrufen behalte?

Wenn ich einen anrufe, aber nicht den anderen, wird der andere Müll gesammelt? Also, wenn ich @ anrufail(), wird jquery @ loswerddone()?

Ich denke vielleicht völlig falsch, hätte aber gerne eine Klarstellung. Das nächstgelegene, das ich bisher gefunden habe, war dieses Muss ich immer entweder JQuery Deferred.resolve oder Deferred.reject aufrufen?. Der Anwendungsfall ist jedoch etwas anders, da der Benutzer in diesem Beispiel noch nie einen Rückruf für @ definiert hafail().

Ich bin auch darauf gestoßen,Kann jQuery aufgeschoben werden abgebrochen?, ich versuche jedoch nicht, ein @ zu stornierdeferred.

Ich verstehe, dass dies keine bewährte Methode ist, aber zum Zweck der Frage bin ich immer noch neugierig, ob es Speicherprobleme verursachen würde.

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage