Сообщение от nerv_
|
А ничего, что у тебя идет создание экземпляра (зачем?), а в коде выше просто гуляем по цепочке.
|
Создание простых массивов и объектов одно из самых оптимизированных мест в VM JS. С идеологической точки зрения - это конечно не верно, но это короче, понятнее и в случае написания такой конструкции в замыкании - быстрее, т.к. интерпретатор сразу видит, что создался инстанс и вызывается его метод, а с Array он будет плясать по родительским Scope, пока не дойдёт до глобальной области и не обнаружит его там. Теоретически возможен также баг, если переопределить Array, но так делают только идиоты и в таком случае - они сами виноваты
К тому же созданный инстанс после этой операции будет сразу же подобран сборщиком мусора, т.е. алгоритм такой же как и для 'foo'.length, где для получения свойства length создаётся объект обёртка, а затем сразу же удаляется после использования.