Сообщение от Maxmaxmахimus
|
melky,
ну во первых я уже писал что я просто забыл удалить лишнее
return Object.getOwnPropertyNames( this._elements );
|
если ты на серъёзе собираешься оставить эту строчку, то
IE7, IE8, Opera будут срать кирпичами при каждом вызове keys.
Сообщение от Maxmaxmахimus
|
Так же нет свойства lenght которое бы постоянно изменялось, есть метод count, то есть когда НУЖНО, то можешь посчитать количество элементов и закэшировать. В остальыне же моменты на это ресурсы не тратятся.
|
Ы. тут ситуация такая же, как и у свойства length у массивов в старых браузерах (напомню, он не кешировался)
Сообщение от Maxmaxmахimus
|
операций по получению ключей меньше чем операций с работой с элементами хэша.
|
return cached_keys;
// vs
for(i in elements) keys.push(i);
return keys;
ты так думаешь? "просто вернуть" и "перебрать".
Сообщение от Maxmaxmахimus
|
Или когда НУЖНО просто ПОСЧИТАТЬ эти ключи.
|
у тебя все операции с элементами сделаны через высокоуровневые методы. при добавлении элемента просто увеличиваешь цифру количества элементов на один.
Сообщение от Maxmaxmахimus
|
что лучше ВСЕГДА кэшировать ключи. При любых операциях дергать этот кэш.
|
при добавлении добавляешь в кэш. при удалении - удаляешь. это все операции с изменением кеша.
PS. а давай протестируем Hash на больших данных? что голословить...