我有以下代碼:正在刪除對函數的引用,刪除函數的實例?
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? –