ES6模板文字可以在运行时替换(或重用)吗?
tl; dr:是否可以制作可重用的模板文字? 我一直在尝试使用模板字面量,但我想我只是不明白,而现在却感到沮丧。我的意思是,我认为我明白了,但是“它”不应该是它的工作方式或应该如何得到。它应该变得不同。 我看到的所有示例(甚至是带标签的模板)都要求“替换”必须在声明时而不是在运行时完成,这对我来说对于模板似乎完全没有用。也许我疯了,但是对我来说,“模板”是一个包含令牌的文档,这些令牌在您使用时(而不是在创建时)会被替换,否则只是一个文档(即字符串)。模板与令牌一起存储为令牌,并且在您评估模板时会评估这些令牌。 每个人都举一个可怕的例子,类似于: var a = 'asd'; return `Worthless ${a}!` 很好,但是如果我已经知道了a,我会return 'Worthless asd'或return 'Worthless '+a。重点是什么?说真的 好吧,关键是懒惰。更少的优点,更多的可读性。大。但这不是模板!不是恕我直言。MHO至关重要!恕我直言,问题是模板在声明时就进行了评估,因此,如果这样做,恕我直言: var tpl = `My ${expletive} template`; function go() { return tpl; } go(); // SPACE-TIME ENDS! 由于expletive未声明,因此输出类似的信息My undefined template。超。实际上,至少在Chrome中,我什至无法声明模板;由于expletive未定义,因此将引发错误。我需要的是能够在声明模板后进行替换: var tpl = `My ${expletive} template`; function go() { return tpl; } var …