Показать сообщение отдельно
  #3 (permalink)  
Старый 13.07.2013, 16:18
Новичок на форуме
Отправить личное сообщение для krantadan Посмотреть профиль Найти все сообщения от krantadan
 
Регистрация: 13.07.2013
Сообщений: 5

Вряд ли так уж в разы. Функция - это особый вид объекта. Объекты копируются по ссылке, а не по значению. Значит, чтобы избежать излишнего потребления памяти достаточно вытащить определения методов из конструктора (чтобы эти функции-методы не создавались каждый раз при создании нового объекта).

Было:
function Array() {
    this.push = function (...) {...};
    ...
}


Стало:
function push(...) {...}
function Array() {
    this.push = push;
}


Тогда мы тратим память лишь на хранение ссылок в каждом инстансе, а это совсем не так страшно, так как ссылка мало весит.
Ответить с цитированием