根据第 6 版JavaScript:权威指南(Flanagan,2011):
ECMAScript v3 指定替换参数
replace()
可以是函数而不是字符串。
我正在查看 2005 年编写的一些代码,其中使用了复杂的解决方法来替换部分字符串。代码的注释清楚地表明它最初使用了函数replace()
方法,但解决方法是跨浏览器兼容性所必需的。
ECMAScript v3 于 1999 年问世,据我所知(从这篇讨论文章和这篇博客文章),自 2001 年底以来,主流浏览器都支持 ECMAScript v3。可能是作者错了,还是有人能解释一下为什么在 2005 年可能需要这种变通方法?
...
更新代码作者的实际评论说:
RegExps 中的 lambda 函数目前是浏览器过多的问题。
更改代码以解决问题。
作者代码为该业务工作或运行,尽管代码本身很可能是个人项目。