【发布时间】:2016-11-07 15:45:06
【问题描述】:
我正在为模板文字编写一个 es6 标记函数,它首先检查字符串中的条件,如果未找到条件,则仅将模板文字解释为没有标记。我很好奇,是否有一种方法可以从我的标记函数中调用浏览器的本机模板文字函数(我认为它会比 我自己实现的函数 更快)。 Bonue:这样就不能有标签合成的机会,比如htmlEscape(unndentfoobar);
例如。
function dumbTag(strs, ...vals) {
vals = vals.map((val,i) =>
(i % 2 == 0 ? 'even:' : 'odd:')+val);
return String.template(strs, ...vals);
}
我自己实现的功能 - 有没有更快的方式/方式来调用浏览器的功能?
function template(strs, ...vals) {
let result = strs[0];
for (let [i,val] of vals.entries()) {
result += val;
result += strs[i+1];
}
return result;
}
【问题讨论】:
-
我认为没有可以调用的函数...如果你找到了,请告诉我。
-
什么是
substs,你的意思是vals? -
@Bergi 是的,已更新
标签: javascript ecmascript-6 variadic-templates template-literals