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/44734944/

相关文章:

javascript - 拉取JPlayer播放列表元素信息

javascript - 导入和导出 es6 类

java - 是否可以在 Android 中运行时执行 Java 代码字符串?

javascript - jquery动画到新页面

javascript - 如何使用 Swig 将 JavaScript 中的关联数组映射到 C++ 中的字符串映射?

javascript - 用于 es6(弱) map 、集合的正确 React 组件 PropTypes

javascript - 复制内容并带上url

javascript - JGraph 中的 eval 隐藏代码与混淆\打包

Python eval 错误抑制

javascript - 使用 bootstrap 4 单击按钮切换列表(ui)弹出窗口