Показать сообщение отдельно
  #5 (permalink)  
Старый 07.09.2010, 14:19
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Потому, что при каждом создании объекта через конструктор, создаются одинаковые методы для каждого созданного экземпляра:
function MyClass(){
  this.method = function(){}; // Ещё один новый метод
}

Если методы определять в прототипе, все созданные объекты будут использовать одну и ту же функцию:
function MyClass(){}
MyClass.prototype.method = function(){}; // Один на всех

Это сильно снижает расход памяти.

Последний раз редактировалось B~Vladi, 07.09.2010 в 14:22.
Ответить с цитированием