Функция тега вызывается с массивом строк в шаблоне в качестве первого аргумента, а затем с дискретными аргументами со значением каждого заполнителя.Параметр rest (...values
) собирает все значения, передаваемые из второго (в вашем случае) аргумента, в массив.Таким образом, values[0]
- это значение первого заполнителя в вызове foo
, а values[1]
- значение второго заполнителя.
Нет веских оснований для использования ...values
в foo
просто чтобы затем получить a
и b
из values
, было бы проще и, возможно, понятнее просто объявить a
и b
в качестве именованных параметров:
function foo(strings, a, b) {
return `Sum ${a + b}
Product ${a * b}
Division ${b / a}`;
}
var a = 5;
var b = 10;
function foo(strings, a, b) {
return `Sum ${a + b}
Product ${a * b}
Division ${b / a}`;
}
console.log(foo`Num1 ${a + 10}
Num2 ${b * 2}
Num3 ${b / a}`);