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 есть но я не верно проверяю?
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Alex_At_Net
https://alexatnet.com/mentoring
JS язык со сборкой муссора. Когда неспользуемые объекты удаляются, удаляется весь граф. Наличие циклических ссылок не приводит к memory leaks. Что бы от возник должен быть именно путь от одного из roots к объекту.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы