Показать сообщение отдельно
  #13 (permalink)  
Старый 21.05.2012, 18:25
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Maxmaxmахimus Посмотреть сообщение
Так же приходится фиксить конструктор.
<...>
то накладывает впечатление не правильного использования системы прототипов.
поясни и первое, и второе.

что тут не так ?

function a(b){ 
  this.b = b; this.scream(); 
}

a.prototype = { 
  scream: function(){
    alert(this.b + ", World!")
  } 
};

new a("Hello");

Сообщение от Maxmaxmахimus Посмотреть сообщение
То есть ЛУЧШЕ для производительности ?? да. Лучше вообще все в одну строку написать, или вообще сразу бинарниками писать)
код из твоего примера:
Hash.prototype.keys = function () {
	var elements = this._elements,
		keys = [];

	for ( var key in elements ) if ( elements.hasOwnProperty( key ) ) {
		keys.push( key );
	}

	return /*массив ключей*/;
};

ты каждый раз при обращении к методу итерируешь свойства. но ты бы мог из перебирать только в исключительных случах, вроде замены всех элементов. при добавлении нового он добавляется к кэшу элементов. результат ? в разы повышается производительность.
Ответить с цитированием