Сообщение от trikadin
|
В случае с childNodes она как раз таки представлена хешем.
|
Вам w3 не авторитет?
Сообщение от Википедия
|
По реализации
На уровне реализации коллекция может представлять собой одну из следующих структур данных:
* Массив
* Односвязный список
* Двусвязный список
* Стек
* Хеш-таблица
* Битовый массив
|
Сообщение от trikadin
|
elem.parentNode.removeChild(elem)
|
И где здесь обращение к объекту childNodes? Вы обратились к объекту-хранителю связанного списка.
Сообщение от trikadin
|
nextChild и previousChild тоже не хранят элементы. Собственно, суть в том, что элемент - он просто есть. На него может быть сколько угодно ссылок - на элемент это не влияет (ну, почти). Если в C++, скажем, элементы добавляются в двусвязный список, а с удалением массива - исчезают, то здесь можно удалить хоть всех предков элемента - если на него будет ещё хоть одна ссылка, он будет жить.
|
Ну во-первых, все эти механизмы не зависят от языка программирования.
Во-вторых в двусвязных списках ни где не используются массивы - только объекты и указатели, туда-сюда.
В-третьих, я разве писал, что nextChild и previousChild хранят элементы? Они хранят указатели на объекты элементов, как это и делается в любом двунаправленном списке. А коллекция childNodes является уже следствием этого списка, просто как дополнительный словарь-указатель (типа оглавления с закладками на уникальные name и id), и, подозреваю, что нигде во внутренних механизмах браузера не используется ни для рендеринга, ни для x-path обхода дерева. Поднимем исходники какого-нибудь браузера?