动态计算模板字面量
Evaluating template literals dynamically
模板文字如下:
const templateLiteral = `string text ${expression} string text`
我想动态地计算模板字面值成一个完成的字符串。
function toFoo(templateLiteral){
//returns "string text Foo string text"
return templateLiteral.evaluate('Foo');
}
function toBar(templateLiteral){
//returns "string text Bar string text"
return templateLiteral.evaluate('Bar');
}
function toBaz(templateLiteral){
//returns "string text Baz string text"
return templateLiteral.evaluate('Baz');
}
是否有一种方法可以用模板字面量做类似的事情,或者我只是愚蠢的?(template.evaluate()是一个组成的函数,但我正在寻找与JS的那种功能!)
最好的方法很明显,就是把题目给出的情况反过来。您只需要将模板文字包装在函数中,然后您将延迟计算,直到您传入所需的参数。就这么简单。
function evaluteTemplateLiteral(bar){
return `foo ${bar} baz`;
}
现在如果你想更漂亮,你可以这样写:
function evaluateGeneric(vals, fn){
return fn.apply(null, vals);
}
,你可以这样使用:
evaluateGeneric(['brown','fox','cholo'], function(){
return `the quick ${arguments[0]} fox ${arguments[1]}`;
});
标记的模板字符串可以在这种情况下提供帮助:
function toFoo(strings, ...values) {
console.log(strings[0]); // string text
console.log(strings[1]); // string text
console.log(values[0]); // <your-passed-expression>
// TODO: Do your manipulation
}
const val = toFoo`string text ${expression} string text`;
strings
包含"normal"line和values
的标记是变量"部分。请注意,您必须手动连接字符串
我会调用eval,当使用模板字符串
相关文章:
- 动态行的内联计算
- jQuery 计算动态添加的行
- 如何使用 jQuery 计算动态添加到页面的列表项数
- 自动计算动态文本框值的总和
- 计算动态添加的表单元素的总和
- ES6计算(动态)属性名称
- 如何使用javascript计算动态字段数的总值
- 计算动态添加的输入中的值
- JavaScript,计算动态金额
- 计算动态输入字段数之间的百分比
- 如何计算动态添加的输入
- HTML5 SVG:计算动态创建的SVG内容的文本大小
- 如何计算动态表行的小计
- JQuery计算动态添加字段的值
- 使用jAutoCalc插件计算动态行
- 使用javascript计算动态输入框的折扣
- 计算动态图像高度后如何执行JavaScript代码
- 如何计算动态元素的高度?
- Javascript/Jquery计算动态文本框的形式
- 在jQuery中计算动态隐藏字段