Javascript: удалить element.cloneNode () из памяти

У меня ситуация, когда мне нужно клонировать элемент, прочитать его атрибуты и другие функции синтаксического анализа, но теперь, когда я не делаю element.parentNode.appendChild(clonedElement), как мне удалить этот клон из памяти?

var clonedElement = element.cloneNode();

// do some stuff with it

clonedElement = null; // is this good enough?

Так что, достаточно ли хорош clonedElement = null;, чтобы стереть его из памяти?


person thednp    schedule 15.12.2016    source источник


Ответы (1)


Если вы хотите удалить ссылку переменной на узел DOM, используйте

element = null;

Поскольку Javascript - это сборщик мусора, вам не нужно удалять сами объекты, они будут удалены, когда на них больше не будет возможности ссылаться.

но

Если удаляемый элемент DOM не содержит ссылок (нет ссылок, указывающих на него), тогда да, сам элемент подбирается сборщиком мусора, а также любыми обработчиками / прослушивателями событий, связанными с ним.

если есть ссылки, которые все еще указывают на указанный элемент, этот элемент и его прослушиватели событий сохраняются в памяти.

var removeChilds = function (node) 
{
    var last;
    while (last = node.lastChild) node.removeChild(last);
};

removeChilds( element ) ;
element=null;
person Community    schedule 15.12.2016