アプリケーションでメモリ リークはまだ発生していませんが、将来起こりうる問題について心配しています。このようなことをしているかどうか知りたいです:
SomeClass.prototype.someMethod= function() {
var that= this
this.$div2.click(function() {
that.someMethod2();
});
}
そして、this.$div2 が別の div this.$div1 に追加されたとしましょう。私が電話したら
this.$div1.remove();
後で SomeClass インスタンスの参照を失います SomeClass インスタンスはガベージコレクションされますか? そして、HTML 要素 this.$div2 はどうですか? this.$div2 は this.$div1 に追加されるため、DOM 内にはありません。
これは、this.$div2 のイベント ハンドラーが HTML 要素 this.$div2 への参照を保持し、変数 "that" のためにクロージャーを介して SomeClass のインスタンスへの参照を保持する可能性があるためです。
では、このようにすべてのイベントと HTML 要素を適切に削除する必要がありますか? それとも単に「ルート」要素 (this.$div1) を削除するだけで問題は解決しますか?