Как различать живые и неживые коллекции NodeList?

оба документа.getElementsByTagName ('div') и документ.querySelectorAll ('div') возвращает коллекцию NodeList. Разница лишь в том, что первый метод возвращает live-collection, а второй - статический.

вопрос в том, есть ли возможность отличить один объект от другого только путем проверки этих объектов (i.e - не пытается добавить / удалить некоторые элементы для проверки "живости")?

спасибо заранее

2 ответов


на NodeList интерфейс агностик своего мертвого или живого состояния.

interface NodeList {
  Node item(in unsigned long index);
  readonly attribute unsigned long length;
};

Он содержит только свойство length, и метод item поэтому я боюсь, что в настоящее время невозможно определить, является ли объект живым, не манипулируя DOM и не видя эффектов.


a=document.querySelectorAll('a');
b=document.getElementsByTagName('a');

a.toString() == "[object NodeList]"
b.toString() == "[object HTMLCollection]"

(в FF/Chrome)