Показать сообщение отдельно
  #5 (permalink)  
Старый 09.10.2020, 08:16
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,712

Сообщение от Was-Ja
Скажите, пожалуйста, правильно ли я понимаю, что в этом случае я могу надеяться, что если у меня был MyDIV_111 в первой версии и я таки не удалил ссылку на document.getElementById('MyDIV_111'), то после следующего вызова и выделения нового <div id=MyDIV_111></div> по крайней мере старая память будет удалена, или тут все еще нет гарантии?
В общем случае нет никакой гарантии. С точки зрения JavaScrit ваш div это обычный Object. И пока на него есть ссылка (пока он достижим из глобальной области) он будет существовать в память. А то, что у двух различных объектов есть одинаковое свойство с одинаковым значением никого не волнует.
Не все так страшно, конечно. Если на эти объекты ссылаются локальные переменные в функции, то по окончанию работы функции пропадут эти переменные, не будет ссылок и память будет освобождена. Или если в глобальную переменную вы запишете ссылку на новый объект, то на старый никто ссылаться не будет и его уберут.
Сообщение от Was-Ja
Скажите, пожалуйста, а как дело обстоит с event, грубо говоря у меня везде еще есть onclick=MyFunc(111)?
Тут объект ссылается на функцию, а не функция на объект. Так, что объект будет удаляться, когда не станет ссылок на него.
Ответить с цитированием