В JavaScript вы можете определить обработчик обратного вызова в операциях замены строки regex:
str.replace(/str[123]|etc/, replaceCallback);
Представьте, что у вас есть объект поиска строк и замен.
var lookup = {"str1": "repl1", "str2": "repl2", "str3": "repl3", "etc": "etc" };
и эта функция обратного вызова:
var replaceCallback = function(match) {
if (lookup[match])
return lookup[match];
else
return match;
}
Как вы оцениваете производительность вышеупомянутого обратного вызова? Есть ли способ улучшить его? Будет
if (match in lookup) //....
или даже
return lookup[match] || match;
приводят к возможности оптимизации JS-компилятора или все это одно и то же?