Сейчас я пишу node.js / socket. io, но вопрос общий для 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
(ассоциативные массивы являются объектами), не будет удалено, его ссылка на его значение будет удалена, но свойство все еще будет существовать в объекте.
Я прав?