【问题标题】:Javascript Variable ReferenceJavascript 变量参考
【发布时间】:2015-02-17 16:01:09
【问题描述】:

一些我不明白的东西,我相信对 Javascript 有任何简单了解的人都会明白的; 这个替换函数中引用的 'm' 变量实际上是如何引用来自 str 的输入的 - 我不明白它是如何将 str 当作 m 的?

str = str.replace("whatevers",function(m){ return m.toUpperCase(); })

提前非常感谢。泰勒。

【问题讨论】:

标签: javascript scope


【解决方案1】:

每个函数都定义了如何使用传入的任何函数。 documentation for String.prototype.replace() 解释了它在specifying a function as a parameter 部分中的使用方式。

在replace 的实现中的某个地方,您传入的那个函数是用几个参数调用的。完整的例子是:

function replacer(match, p1, p2, p3, offset, string) {
  return "replacement_text";
}

【讨论】:

    【解决方案2】:

    在字符串替换的上下文中,如果您将一个函数作为第二个参数传入,就像您正在做的那样,您传入的该函数的第一个参数(在您的情况下为“m”)将是任何匹配您最初的第一个参数(在本例中为“whatevers”)。一旦找到匹配项,就会分配给“m”,然后它将对该变量“m”执行 toUpperCase 函数。

    【讨论】:

      猜你喜欢
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      相关资源
      最近更新 更多