有没有办法在Javascript中重复使用模板文字?

时间:2019-05-13 12:38:46

标签: javascript template-literals

我正在尝试在javascript中重新使用模板文字。

这不起作用:

let int;
let temp= `Number is: ${int}`;
console.log(temp)
// Number is: undefined
int = 1;
console.log(temp)
// Number is: undefined
int = 2;
console.log(temp)
// Number is: undefined

我认为更改int变量将动态改变模板中的内容。但是我学到了其他:D

是否有可能,如果可以的话,正确的做法是什么?

谢谢。

3 个答案:

答案 0 :(得分:5)

只需使其由函数返回即可:

let int;
let temp= () => `Number is: ${int}`;
console.log(temp())
// Number is: undefined
int = 1;
console.log(temp())
// Number is: 1
int = 2;
console.log(temp())
// Number is: 2

答案 1 :(得分:2)

您最好的选择是为此创建一个函数。

function getTemp(int) {
  return `Number is: ${int}`;
}


let int;
console.log(getTemp(int))
// Number is: undefined
int = 1;
console.log(getTemp(int))
// Number is: undefined
int = 2;
console.log(getTemp(int))
// Number is: undefined

答案 2 :(得分:1)

您可以简单地使用Tagged templates

let temp= (num) => `Number is: ${num}`;

console.log(temp `1`);
console.log(temp `2`)