变量作为标记函数的参数

时间:2021-07-22 13:30:22

标签: javascript template-literals

当模板文字是变量时,是否可以创建标签函数? 例如而不是这个

render`<h1>Hello World</h1>`

有没有办法做到这一点?

const template = `<h1>Hello World</h1>`
render(template)

1 个答案:

答案 0 :(得分:1)

不,这不可能。 Tagged templates 是一种特殊语法,其中 render 将使用字符串数组和所有 ${value} 值调用。通过将其存储在这样的变量中,模板文字会被解释为要转换为字符串而不是函数调用的常规模板文字。

当然,如果您的 render 函数所做的只是将模板及其变量连接起来,那也没关系。但请注意,模板字面量中的变量在您将其存储在变量中时已经进行了评估,以后无法重新评估。