javascript - 将字符串转换为模板字符串

标签 javascript ecmascript-6 eval template-strings

是否可以将模板字符串创建为普通字符串,

let a = "b:${b}";

然后将其转换成模板字符串,

let b = 10;
console.log(a.template()); // b:10

没有evalnew 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);

关于javascript - 将字符串转换为模板字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39425029/

相关文章:

javascript - 用于打印的样式动态内容

javascript - 配置 htaccess 以直接访问 CSS 和 JS 文件,但将所有其他请求重定向到索引文件

javascript - iOS UIWebView 闪烁问题

javascript - ES6 箭头函数和 this 上下文

java - 如何在 Eclipse 的调试控制台中打印 Java 对象的当前值?

Javascript for循环添加 "n"个选项元素?

javascript - react ref 和 queryselectorall

node.js - Async Await 的行为不符合预期

javascript - 执行变量

matlab - 使用 Strcat 创建动态变量名