javascript中鲜为人知String.replace方法

近日看Ext-1.0.1源代码,在Ext.js的第552行有如下代码:
    format : function(format){
        var args = Array.prototype.slice.call(arguments, 1);
        return format.replace(/\{(\d+)\}/g, function(m, i){
            return args[i];
        });
    }

该方法实现如下功能:
String.format("name is {0} and age is {1}", "John", 12) => name is John and age is 12


上述代码中的replace方法的调用很意思,它接收的第二个参数是一个function,而我们通常调用replace方法时第二个参数传递的一般是String。

直接上google查找javascript reference,但很少有提到这种用法的。后来在 mozilla的参考文档中终于找到了这种用法,这里有详细的API及javascript版本兼容性说明。

你可能感兴趣的:(JavaScript,Google,prototype,ext)