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

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

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

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

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

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час