可以使用模板字符串作为对象值吗?

Can you use template strings as an object value?

有没有办法创建模板字符串的散列?

类似于:

const myStrings = {
   a: `myStringA${test}`,
   b: `myStringB${test}`
}

然后在其他地方,你可以做类似的事情:getString(index, test),它可以索引到对象中。我知道以上是错误的,但只是想举例说明我的想法。例如,getString(a, "Cat") 将 return:myStringACat

对于您的用例,我会看到以下内容:

var myStrings = {
    a: "myStringA${test}",
    b: "Name: ${name}, Id: ${id}",
 
    getString: function(index, o) {
      var string = this[index];

      Object.keys(o).forEach(function(key) {
        if (string.indexOf("${" + key + "}")) {
       string = string.replace("${" + key + "}", o[key]);
        }
      });

      return string;
    },
};

console.log(
  myStrings.getString("a", {test: "Cat"}),
  " ",
  myStrings.getString("b", {name: "Arber", id: 123})
);

// "myStringACat"
// "Name: Arber, Id: 123"