是否可以将模板字符串创建为通常的字符串,
let a = "b:${b}";
然后将其转换为模板字符串,
let b = 10; console.log(a.template()); // b:10
没有eval,new Function和其他动态代码生成方式?
eval
new Function
在我的项目中,我用 ES6 创建了类似的东西:
String.prototype.interpolate = function(params) { const names = Object.keys(params); const vals = Object.values(params); return new Function(...names, `return \`${this}\`;`)(...vals); } const template = 'Example text: ${text}'; const result = template.interpolate({ text: 'Foo Boo' }); console.log(result);