Задать вопрос
newbie_bro
@newbie_bro
Учусь на программиста

Если обнулить ссылку в объекте, которая ссылаеться на подобъект, то этот подобъект удалится?

let obj1 = {
  'bruh': 'hello',
  'subObj': {
    'subBruh': 'world',
  }
};

obj1.subObj.subBruh = null;
  • Вопрос задан
  • 67 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
sinneren
@sinneren
Выше уже сказали ,если удалить и ссылок нет, то удалится. Но в вашем примере вы просто присваиваете subBruh значение null, так что сам subBruh останется, аналогично и для subObj.
Правильно делать через delete: delete obj1.subObj - удалит весь объект subObj.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Смотря что понимать под "удалится".
Если это единственная ссылка на экземпляр, то вероятно да, сборщик мусора его уберёт, но могут быть нюансы со строками и числами, тк V8 для них всякие специальные оптимизации делает.
Ответ написан
Комментировать
lazalu68
@lazalu68
Salmon
Если имелось в виду obj1.subObj, то да, объект удалится если ссылок на него больше нету
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы