根据MDN,标记模板字面量可按如下方式使用:
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!"
tag
被调用时没有使用括号。我原本以为应该像
tag(`Hello`)
这样调用,但那会将模板字面量生成的字符串作为参数传递给函数的strings
参数。不使用括号但带参数调用函数的特殊功能是什么?
new
运算符:new Foo
。当然还有call
和apply
(它们也是函数,但你不需要使用括号来调用函数本身)。 - Felix Kling