【发布时间】:2018-03-08 02:48:23
【问题描述】:
在python中,你可以像这样进行变量字符串插值:
song_context = { "adjective": "funny" }
ella_sings = "my {adjective} valentine".format(**song_context)
这里,song_context 对象格式化 ella_sings 字符串中的变量。
在 ES6 中是否有一种内置方法可以使用模板文字进行类似的操作?我正在寻找一种为给定字符串显式定义替换空间的快速方法。例如:
const song_context = { adjective: "funny" }
const ella_sings = `my ${adjective} valentine`.format(song_context)
上下文:我知道其他方法可以做到这一点,例如使用a template library 或multiple find and replace,但我想知道ES6 的任何部分是否支持这个用例。我浏览了template literal part of the ECMAScript 6.0 standard,它非常清楚地说明了"Let ctx be the running execution context",但似乎很难相信他们不会在必要时提供一种更明确上下文的方法。
【问题讨论】:
-
为什么要将形容词放在对象中以与字符串文字一起使用?
-
模板文字不能替代实际的模板引擎。
-
@RobertMennell 这就是问题所在 - 我想将对象传递给模板文字,而不是使用模板文字的上下文。
-
@FelixKing 我不确定您为什么认为我试图通过使用模板文字来替换实际的模板引擎。我不想这样做。相反,我想控制模板文字的范围。
-
@P.MyerNore 那么我的答案应该正是您想要的。在基本模板文字格式中你不能,但在标记模板中你可以。
标签: ecmascript-6 template-literals