According to MDN, Tagged template literals can be used as follows:
var a = 5;
var b = 10;
function tag(strings, ...values) {
alert(strings[0]); // "Hello "
alert(strings[1]); // " world "
alert(values[0]); // 15
alert(values[1]); // 50
return "Bazinga!";
}
tag `Hello ${ a + b } world ${ a * b }`; // "Bazinga!"
In the example above, the function tag is called without using parentheses.
I expected it should be called like tag(`Hello`), but that passes the string resulting from the template literal as the argument for the strings parameter of the function.
What's this special feature of calling functions without parentheses but with parameter?