Un esempio di come implementare la funzione string.format in JavaScript:
String.prototype.format = function(){
  //Sgart.it - String.format
  //27-01-2015 update
  var l=arguments.length;
  var s=this;
  if(l>0){
    var a=test.match(/\{\d+\}/gi);
    if(a!==null)
      for(var i=0;i<a.length && i<l;i++){
        var id=a[i].substr(1,a[i].length-2);
        s=s.replace(new RegExp("\\{"+id+"\\}","g"), arguments[parseInt(id)]);
     }
  }
  return s
};
che in forma semplificata diventa:
String.prototype.format = function(){
  //Sgart.it - String.format
  var args=arguments;
  return this.replace(/\{\d+\}/g, function(m,i){
    var n=parseInt(m.substr(1,m.length-2));
    return n>args.length ? m : args[n];
  });
};
Esempio:
var test="Esempio numerico: {0}, parametro: {11}, data: {2} e stringa: {1}";
var result=test.format(124, "ciao", new Date());
console.log(result)
da come risultato:
Esempio numerico: 124, parametro: {11}, data: Sun Jan 26 03:04:41 UTC+0100 2015 e stringa: ciao 
il parametro in posizione 11 non esiste ne abbiamo solo tre nell'esempio, da 0 a 2 (124, "ciao", new Date()), quindi non viene sostituito.