Javascript inserta variables en un lugar específico de una cadena

¿Cuál es el mejor método para tomar una cadena de 'plantilla' e insertar información en ella?

Por ejemplo:

var templateString = "Hello {name1}, my name is {name2}";
var name1 = "Phil";
var name2 = "Amy";

¿Habría un nombre fácil para insertar los valores donde está el nombre de la variable rodeado de llaves? Necesito que esto funcione no solo para este ejemplo (por lo que hacerlo mediante un índice fijo no es una opción) sino para cualquier cadena de plantilla dada y cualquier número dado de variables.

Respuestas a la pregunta(4)

Su respuesta a la pregunta