Почитал
https://learn.javascript.ru/object-reference, но всеравно остались вопросы, надеюсь поможете разобраться.
На сервере нода с сокетио. Допустим имеем:
var globalVariable = {
user111: {
id: 111,
name: 'Vasya'
},
user222: {
id: 222,
name: 'Petya'
}
};
//слушаем ивент на ренейм юзера
.on('rename', obj => {
//где obj = { id: [user_id], newName: [string] }
//изменяем глобальный объект, ссылкой на вновь прибывший ?
globalVariable['user'+obj.id].name = obj.newName;
});
Вопросов несколько:
1. сможет ли сборщик мусора забрать именно этот obj или же будет ждать пока не придет новый запрос на этого же юзера он будет висеть в памяти ?
2. что будет если занулить этот объект (obj = null) после присвоения к глобальному объекту ? и правильно ли будет так делать ?
3. или я не правильно все понял и он присваивает только строку (obj.newName), а не ссылку на свойство этого объекта ?
4. как правильно присваивать объекты к глобальному объекту, чтобы на него небыло ссылок ? Пример:
//у юзера есть еще свойство customObj, который является объектом
.on('someEvent', obj => {
//где obj = { propone: 'someValue', proptwo: 'someValue' }
//предположим что каким-то магическим образом знаем ид юзера
globalVariable.user111.customObj = obj;
});
Если таких юзеров будет относительно много, оно ведь поидее всю память сожрет, как быть ?