Причина существования Hash заключается в том, что реализация метода Object.prototype - очень и очень плохая практика, потому что это нарушит работу вашего приложения.
Hash позволил использовать Hash.prototype, например:
new Hash({my: 'nice', literal: 'object'}).filter(someFunction).map(function(value){
return value + ' sfsdf ';
}).getValues();
Вы можете использовать Hash.implement
для добавления собственных методов, которые фактически добавляют методы в Hash.prototype.
Поскольку с новой спецификацией ECMAScript 5, которая имеет множество функций Object. *, Например Object.keys, MooTools 1.3 теперь использует эти функции вместо Hash.
var obj = {my: 'nice', literal: 'object'}
Object.values(Object.map(Object.filter(obj, someFunction), function(value){
return value + ' sfsdf ';
}));
Может быть, немного более многословно в этом примере, но больше соответствует ES5.
Если вам действительно нравится Hash, вы все равно можете использовать их в MooTools More 1.3.
Обратите внимание, что вы можете использовать Hash точно так же, как в примере с объектом выше, поэтому:
var values = Hash.getValues({my: 'nice', literal: 'object'});