Formatação de string no estilo Python em JS

Construir strings com conteúdo dinâmico em JavaScript é muito grosseiro. Citação inicial, citação final, concatenar, citação inicial, citação final …

Muitas vezes me pego bagunçando quando tento digitar rapidamente.

Esta pequena função tira uma página do livro de Python e adiciona interpolação de string ao JS.

String.prototype.format = function(){
var args = arguments
return this.replace(/{{|}}|{(d+)}/g, function (m, i) {
if (m == "{{") return "{"
if (m == "}}") return "}"
return args[i]
})
}

E aqui está como você o usa:

var count = 'Three', animal = 'mice', verb = 'run', output

output
= '{0} blind {1}. {0} blind {1}. See how they {2}.'.format(count, animal, verb)

É importante notar que o desempenho desta função não é grande em comparação com a concatenação – então, se você estiver trabalhando muito com strings, provavelmente não é uma boa escolha. Mas com certeza é melhor escrever.