次の疑似 jQuery コードでメモリ リークが発生する可能性があるのでしょうか (成功コールバックは常に _this への参照を持っているため)。
var _this = this;
$.ajax({
url: "foo",
type: "POST",
data: data,
success: function() {
// Do stuff with _this
_this.doStuffs();
})
次の疑似 jQuery コードでメモリ リークが発生する可能性があるのでしょうか (成功コールバックは常に _this への参照を持っているため)。
var _this = this;
$.ajax({
url: "foo",
type: "POST",
data: data,
success: function() {
// Do stuff with _this
_this.doStuffs();
})
このコードは関数内ですか?
はいの場合 (私が推測する)、_this は、ajax 呼び出しが完了または失敗した直後に、ガベージ コレクションに対して判読不能になります。したがって、理論上、ここでメモリ リークを心配する必要はありません。
そこにメモリリークは見られません。成功のコールバックは、呼び出された後にガベージ コレクションする必要があります (正しく実装する必要があります。その権利はありますが、jQuery とブラウザーによって、おそらく IE でも適切に行われます)。その後、_this
オブジェクトを収集することもできます (外部から参照されていない場合) - ただし、もちろん、それがクロージャーの目的です。