JavaScript 中将字符串转为模板使用
0x0 方案
String.prototype.interpolate = function (params = {}) {
const names = Object.keys(params);
const vals = Object.values(params);
return new Function(...names, `return \`${this}\`;`)(...vals);
}
0x1 使用方法
const template = 'Example text: ${text}';
const result = template.interpolate({
text: 'Hello'
});
console.log(result);
// Example text: Hello
console.log(typeof result);
// string
0x2 补充说明
如同使用eval()
一样,不是严格安全的。
License:
CC BY 4.0