挑战:
开发人员经常发现 ES6 模板文字对于字符串插值非常有用。然而,当尝试在运行时重用或评估这些文字时,会出现常见的挫败感。似乎替换必须始终在声明时完成,限制了它们作为模板的实用性。
解决方案:
要克服此限制并创建可重用的模板文字,可以要动态重用和评估,我们必须引入一个中间阶段。
使用 Function 构造函数:
可重用的关键在于利用 Function 构造函数来包装模板细绳。通过这样做,我们实质上将模板转换为一个 JavaScript 函数,稍后可以使用特定的变量值调用该函数。
<code class="js">const templateString = "Hello ${this.name}!"; const templateVars = { name: "world" }; const fillTemplate = function (templateString, templateVars) { return new Function("return `" + templateString + "`;").call(templateVars); }; console.log(fillTemplate(templateString, templateVars)); // Output: "Hello world!"</code>
在此示例中,fillTemplate 函数将模板字符串和变量对象作为参数。它将模板包装在函数中,然后返回使用给定变量值调用该函数的结果。这使我们能够动态评估模板,每次插入不同的变量值。
其他注意事项:
虽然此方法为可重用性问题提供了解决方法,但它还引入了潜在的限制。
替代方法:
有些人可能更喜欢探索替代模板引擎库,它们为可重用和运行时评估的模板提供更全面的解决方案。
以上是如何创建可重用的 ES6 模板文字以进行动态求值?的详细内容。更多信息请关注PHP中文网其他相关文章!