arguments.length и for-in
Всем доброго времени суток.
Объясните, пожалуйста, следующий момент. Насколько я понял, arguments - объект с полями 1, ... , n, length. Но тогда почему такой код: function f() { var out = ''; for (var x in arguments) out += x + ': ' + arguments[x] + '; '; alert(out); } f('a', 'b', 'c'); выводит "0: a; 1: b; 2: c; ". Куда пропадает поле length?.. :-? |
вероятно, оно неперечислимое
|
Смотри http://learn.javascript.ru/descripto...рипторы
Добавлю что встроенные объекты имеют какие-то костыльные, магические "дескрипторы", так что Object.getOwnPropertyDescriptor может вернуть некорректный дескриптор. По крайней мере в WebKit я такое наблюдал |
А, for-in перебирает только enumerable поля.
Тогда всё логично, да. Меня просто сбило с толку описание for-in в учебнике: Цитата:
|
Часовой пояс GMT +3, время: 20:47. |