我目前正在编写一个 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
值命名的属性(关联数组是对象)不会被删除,它对其值的引用将会消失,但该属性仍然存在于目的。
我对吗?