В дополнение к проблеме правдивости для уже упомянутых объектов jQuery, основная проблема заключается в том, что .remove()
удаляет родительский элемент из DOM, но не уничтожает его, пока на него не останется никаких ссылок. Поскольку у вас есть ссылка на this
, удаленные объекты все еще существуют. Фактически, целая иерархия объектов может быть удалена из DOM и все еще существует. Это то же состояние, в котором находятся объекты DOM, когда вы их создаете, но еще не вставили их в DOM.
Если вы посмотрите на источник для jQuery .remove()
, он вызывает removeChild()
и уничтожает все состояния jQuery, связанные с объектом, но не уничтожает сами объекты DOM. Они будут в конечном итоге очищены сборщиком мусора, если на них нет ссылок JS.