Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   User Objects... (https://javascript.ru/forum/misc/1158-user-objects.html)

Kolyaj 17.04.2008 20:26

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.

tenshi 18.04.2008 02:08

Цитата:

Сообщение от claster (Сообщение 2031)
Мало того, в нормальных браузерах можно расширить Object и эти методы будут доступны для HTML элементов, но есть Ослик который естественно всегда был и останется стокилограммовой гирей привязанной к ноге девелоперов...
Спасибо за помощь!

это решается специальной компонентой ;-)

.ня

vandy 18.04.2008 10:38

Kolyaj,
А есть какие-нибудь тесты/исследования про скорость и память в обоих случаях?

claster 18.04.2008 13:46

Цитата:

Сообщение от tenshi (Сообщение 2039)
это решается специальной компонентой ;-)

ссылку в студию... хотелось бы ознакомиться с сием чудом...

tenshi 18.04.2008 20:58

ссылку не дам, но рассказать как работает - могу.
на все элементы навешивается компонента, которая при инициализации лезет к нашему HTMLElement.prototype и примешивает его слоты.


Часовой пояс GMT +3, время: 13:20.