Задать вопрос
i_d_1
@i_d_1
Программист PHP

Почему не происходит JS memory leak?

function bb() {
  const parent = () => ({
  	testFn: parent
  })
  
  return parent
}

const a = { c: bb()() };
console.log(a)

setInterval(() => {
	console.log(a);
}, 2000)

setTimeout(() => {
	delete a.c;
}, 6000)


fiddle: https://jsfiddle.net/2xbtghpm/22/

Хотя логика подсказывает что должно. Parent содержит объект со ссылкой на самого себя. Мы его удалили... Или все таки memory leak есть но я не верно проверяю?
  • Вопрос задан
  • 86 просмотров
Подписаться 1 Средний 2 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Alex_At_Net
Обращайтесь, помогу - https://t.me/codecraft_phd
JS язык со сборкой муссора. Когда неспользуемые объекты удаляются, удаляется весь граф. Наличие циклических ссылок не приводит к memory leaks. Что бы от возник должен быть именно путь от одного из roots к объекту.
Ответ написан
Ваш ответ на вопрос

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

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