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

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

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

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

Советую прочитать внимательно про Сборку мусора в современном JS.

Ссылки:
Сборка мусора JS (ru)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽