Ответ 1
Ну, говоря о основных объектах Javascript, arguments
- хороший пример для обсуждения.
В этом случае он был объектом типа массива с самого начала, который появился в спецификации ECMAScript 1th Edition уже как простой объект.
Почему? Я думаю, что в то время было всего четыре встроенных метода Array
, и, возможно, разработчик не думал, что это слишком сильно изменилось, позже было предложено изменение, но Microsoft (часть комитета TC39) не одобрила изменения, страх перед нарушением сети всегда присутствовал.
Теперь я собираюсь разместить объекты, DOM, NodeLists
, я думаю, что они не хотели использовать собственный тип Array
из-за динамического поведения этих объектов.
NodeLists
обычно являются живыми объектами, их структура отражает любые изменения в базовой структуре DOM...
Лично мне нравятся объекты массива, потому что они очень легкие, до ECMAScript 5 в основных методах было много ограничений, связанных с использованием пользовательских объектов, подобных массиву.
Например, метод объектов apply
объектов функции в ECMAScript <= 3 разрешил только реальный массив или объект аргументов в качестве второго аргумента, теперь в ES5, возможно следующее:
var arrayLike = {0: 'hello ', 1:'world', length:2};
(function (a,b) { alert(a+b); }).apply(null, arrayLike);
См. также: