В соответствии с 6-м выпуском JavaScript: окончательное руководство (Flanagan, 2011):
ECMAScript v3 указывает, что аргумент замены
replace()
может быть функцией вместо строки.
Я смотрю код, написанный в 2005 году, где сложный обходной путь использовался для замены частей строки. Замечания для кода ясно показывают, что он первоначально использовал функциональный метод replace()
, но обходной путь был необходим для совместимости с несколькими браузерами.
ECMAScript v3 вышел в 1999 году и, насколько я могу судить (от этот пост обсуждения и это сообщение в блоге), ECMAScript v3 поддерживался в основных браузерах с конца 2001 года. Может ли автор ошибиться или кто-то может пролить свет на то, почему такое обходное решение могло быть необходимо в 2005 году?
...
ОБНОВЛЕНИЕ. Фактический комментарий автора кода говорит:
lambda-функции в RegExps в настоящее время являются проблемой со слишком большим количеством браузеров.
изменен код для работы.
Авторский код работает или запускает этот бизнес, хотя сам код вполне может быть личным проектом.