我不明白的东西,我确信有任何简单的Javascript知识的人都会得到; ' m'这个替换函数中引用的变量实际上是指来自str的输入 - 我不明白它是如何将str作为m?
str = str.replace("whatevers",function(m){ return m.toUpperCase(); })
非常感谢提前。泰勒。
答案 0 :(得分:4)
每个函数定义如何使用传入的函数。 documentation for String.prototype.replace()
解释了specifying a function as a parameter部分中如何使用它。
在replace
的实现中的某个地方,您传入的函数会被多个参数调用。完整的例子是:
function replacer(match, p1, p2, p3, offset, string) {
return "replacement_text";
}
答案 1 :(得分:1)
在字符串替换的上下文中,如果你传递一个函数作为第二个参数就像你正在做的那样,你传入的那个函数的第一个参数(在你的情况下是'm')将是任何匹配您的初始第一个参数(在本例中为“whatevers”)。一旦找到匹配,就会分配给'm',然后它将对该变量'm'执行toUpperCase函数。