:関数への参照を削除して、関数のインスタンスを削除していますか?私は次のコードしている
var NewRoom = new Room(OpenRoom[OpenRoom.length - 1].RID)
NewRoom.addPlayer(socket.id);
NewRoom.addSocket(socket);
Rooms.push(NewRoom);
これは誰もが、私は部屋のこのinstaceを削除したい離れるとき、私は今、新しい部屋を作成する方法です。
アレイルームの機能への参照を十分に削除していますか?特別なコマンドでこれを削除する必要がありますか?
これは、私は今それを削除する方法です:
if(output[0].ListOfSockets.length == 0)
{
var index = Rooms.indexOf(output[0]);
if (index > -1)
{
console.log('Deleted room when there is no one else more');
Rooms.splice(index, 1);
}
}
ここで私は、関数ではなく、関数自体のインスタンスへの参照を削除しています。
私はthisをよく読んで、それをよく理解していれば、関数への参照を削除すると、ガベージコレクションは関数を削除しますか?
*この権利をよく読んで理解していれば、関数への参照を削除すると、ガベージコレクションによって関数が削除されますか?*実際には参照を削除していないので、配列から参照を削除するだけです。もうどこにでも参照しないと、メモリはガベージコレクションによって解放されます。 – nils
@nilsを確認していただきありがとうございます。 –
@nilsですので、参照を削除したい場合は、次のコードを使用する必要があります:Rooms [index] = null? –