私はそのようなクラスを使用します(Socket.ioを使用して)少しのWebSocketプロジェクト、に取り組んでいます:配列に格納され、そのクラスの複数のインスタンスがありますオブジェクト内のsetIntervalは、オブジェクトが削除されたときにガベージコレクションを防止しますか?
function myClass() {
// start server sync
window.setInterval(this.update.bind(this), 14);
// listen for socket.io events
io.on('my-event', doStuff);
}
。 は、しばらくすると、インスタンスはそのように削除されます:
myArr.splice(index, 1);
配列が唯一の場所ですが、私は内のインスタンスを保存するので、私は、彼らは、配列からそれらを削除した後に、ガベージコレクタによって削除になるだろう、と思いました。
私が気づいた代わりに、彼らはまだ私のwebsocketイベントに応答します。私は、オブジェクトがウィンドウオブジェクトにバインドされているので、間隔がオブジェクトの削除を妨げるかどうか疑問に思っています。 クラスインスタンスを削除する前に間隔をクリアする必要がありますか?
または、イベントリスナーによってオブジェクトが削除されないようにしますか?
ありがとう、私がする必要がある手順を指摘してください。私はそのような措置をしたのと同じように、すぐに報告します。 – Afterlame