Сообщение от 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 /*массив ключей*/;
};
ты каждый раз при обращении к методу итерируешь свойства. но ты бы мог из перебирать только в исключительных случах, вроде замены всех элементов. при добавлении нового он добавляется к кэшу элементов. результат ? в разы повышается производительность.