Actualmente estoy escribiendo una aplicación node.js/socket.io pero la pregunta es general a javascript.Administración de memoria de objetos Javascript cuando se usa eliminar en la propiedad
Tengo una matriz asociativa que almacena un color para cada conexión de cliente. Considere lo siguiente:
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];
});
});
Si uso la instrucción de eliminación, me temo que va a hacer una pérdida de memoria como la propiedad nombre de client.sessionId
valor (matrices asociativas son objetos) no se eliminarán, su referencia a su el valor será gonne pero la propiedad todavía existirá en el objeto.
¿Estoy en lo cierto?
Esto se ve muy bien para mí. Eliminará la entrada clientColors de client.sessionId. – neebz