Знать бы почему это так. Кстати, вот тут кто-то провел какие-то опыты и установил, что регулярки шустрее. Но я не знаю кто он и тестировалось это в 2008.
Хеш можно наполнять данными, которые передают пользователи библиотеки.
Но вопрос спорный, конечно. Я вот его расширил до такого варианта:
<source lang="javascript">
replaceAll: function (find, replace) {
var type = atom.typeOf(find);
if (type == 'regexp') {
return this.replace(find, function (symb) { return replace[symb]; });
} else if (type == 'object') {
for (var i in find) this.replaceAll(i, find[i]);
return this;
}
return this.split(find).join(replace);
},
Причина не в скрорости, а в совместимасти.
replace() — является нестандартной функцией.
FF2.0 её не поддерживал.
Тепрь она уже есть во всех современных версиях браузеров…