Тема: User Objects...
Показать сообщение отдельно
  #21 (permalink)  
Старый 17.04.2008, 20:26
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

vandy,
Пример 1:
function F(t) {
  this.t = t;
}
F.prototype = {
  m1: function() { alert(this.t) }
};
var f1 = new F(1);
var f2 = new F(2);


Пример 2:
function F(t) {
  this.t = t;
  this.m1 = function() {  alert(this.t); };
}
var f1 = new F(1);
var f2 = new F(2);

В первом примере свойства f1.m и f2.m указывают на одну и ту же функцию, а значит, памяти тратится меньше. Также во втором примере методы создаются непосредственно в конструкторе, что, разумеется, работает медленнее, чем в первом примере, где в конструкторе выполняется только присваивание t.
Ответить с цитированием