这个javascript函数有什么作用?是否有意义?

Dav*_*lis -8 javascript

String.format = function()
{   var s = arguments[0];
    for (var i = 0; i < arguments.length - 1; i++)
    {   var reg = new RegExp("\\{" + i + "\\}", "gm");             
        s = s.replace(reg, arguments[i + 1]);
    }
  return s;
}
Run Code Online (Sandbox Code Playgroud)

请解释.谢谢.

jos*_*736 5

它将第一个参数作为格式字符串{0},并将第二个参数的实例替换{1}为第三个参数,依此类推.

String.format('{0} there, {1}', 'Hi', 'Josh'); => Hi there, Josh


逐行:

  1. 我们附加了一个命名format为本机String对象的函数(注意,而不是字符串的实例.为此,你要使用String.prototype).
  2. arguments是一个特殊的对象,它是函数执行上下文的一部分(也包括诸如值之类的东西this).它是阵列状(其具有范围从键0arguments.length-1),但它不是一个数组(它不是的一个实例Array,并且因此不具有任何的它的原型的方法,如poppush).的arguments对象是JavaScript函数可以如何利用参数的任意数量.
  3. 循环遍历每个参数......
  4. 构建一个匹配{ i 的正则表达式,}其中i是循环迭代次数.第二个参数是正则表达式选项,gm启用全局和多行模式.
  5. 用提供的值替换匹配项
  6.  
  7. 返回修改后的字符串.