неожиданный способ очистки массива

мои поиски русских блогов о javascript были сравнительно небезуспешными. Сейчас, просматривая один из обнаруженных блогов, нашел в нем заметку «Три варианта удаления childNodes». Она напомнила мне об одной забавной особенности яваскрипта

наверное, многие программисты на ЯВУ привыкли к тому, что у программного массива есть метаданные, которые можно напрямую прочитать. Но далеко не всем приходит в голову, что эти же данные можно и записать ; )

>>> a = [1, 2, 3]
[1, 2, 3]
>>> a.length
3
>>> a.length = 0
0
>>> a
[]

к сожалению, childNodes — это не массив, а NodeList, поэтому напрямую задать ему длину не удастся:

>>> $1.childNodes.length = 0
setting a property that has only a getter

Артемий Трегубенко,

comments powered by Disqus