我目前正在編寫一個node.js/socket.io應用程序,但問題通常是JavaScript。使用刪除屬性時的Javascript對象內存管理
我有一個關聯數組,爲每個客戶端連接存儲顏色。考慮以下幾點:
var clientColors = new Array();
//This execute each new connection
socket.on('connection', function(client){
clientColors[client.sessionId] = "red";
//This execute each time a client disconnect
client.on('disconnect', function() {
delete clientColors[client.sessionId];
});
});
如果我使用DELETE語句,我擔心它會讓內存泄漏的後client.sessionId
值(關聯數組對象)命名的屬性將不會被刪除,其引用其價值將會變得蒼白,但財產仍然存在於物體中。
對嗎?
這看起來對我很好。它將刪除client.sessionId的clientColors條目。 – neebz 2011-04-21 20:16:32