LINUX.ORG.RU

История изменений

Исправление special-k, (текущая версия) :

1) Будет ли для первого варианта «клонироваться» в памяти методы при new myObj()?

Вероятно.

2) Как правильно замерить?

Встроенные профайлеры, количество съеденной памяти и т.д. и т.п. Так или иначе работа с памятью сильна инкапсулирована, чтобы что-то там конкретное измерить.

3) Есть ли различия в поведении js-движков для вышеописанного контекста?

Есть.

4) Предполагаю есть еще вариант с прототипами?

Если создавать функцию один раз, а не 100, то она гарантировано займет в памяти меньше места чем 100 дубликатов функции. Технически можно установить в свойство объекта ссылку на функцию, а не создавать ее на месте.

ради инкапсуляции данных

Прекратите засирать код.

600к «тупых» объектов данных браузер летает

600к объектов с т.з памяти - херня.

for (var i in obj.foo.bar)

Перебор больших объемов данных должен осуществляться только по индексу массива в котором заполнены все элементы (т.е. без дыр).

Исходная версия special-k, :

1) Будет ли для первого варианта «клонироваться» в памяти методы при new myObj()?

Вероятно.

2) Как правильно замерить?

Встроенные профайлеры, количество съеденной памяти и т.д. и т.п. Так или иначе работа с памятью сильна инкапсулирована, чтобы что-то там конкретное измерить.

3) Есть ли различия в поведении js-движков для вышеописанного контекста?

Есть.

4) Предполагаю есть еще вариант с прототипами?

Если создавать функцию один раз, а не сто, то она гарантировано займет в памяти меньше места чем 100 функций. Технически можно установить в свойство объекта ссылку на функцию, а не создавать ее на месте.

ради инкапсуляции данных

Прекратите засирать код.

600к «тупых» объектов данных браузер летает

600к объектов с т.з памяти - херня.

for (var i in obj.foo.bar)

Перебор больших объемов данных должен осуществляться только по индексу массива в котором заполнены все элементы (т.е. без дыр).