当前位置: 首页 > 知识库问答 >
问题:

是否可以在ECMAScript 6中预定义模板文字并多次重复使用?[副本]

欧桐
2023-03-14

模板文字

例如

//define a template literal
let template = `Hello {target}`;

//Then reuse it, just examples to show the idea
let str1 = Format(template, "World");//str1 becomes "Hello World"
let str2 = Format(template, "There");//str2 becomes "Hello There"
let str3 = Format(template, "There Again");//str3 becomes "Hello There Again"

顺便说一句,在C#中通过string重用模板字符串是一种常见的做法。格式

string template = `Hello {0}`;
string str1 = string.Format(template, "World");//str1 becomes "Hello World"
string str2 = string.Format(template, "There");//str2 becomes "Hello There"
string str3 = string.Format(template, "There Again");//str3 becomes "Hello There Again"

问题是,用ES6能做到吗?

共有1个答案

金飞
2023-03-14

通过使用函数可以类似地完成此操作:

function GetHelloStr(target){
  return `Hello ${target}`;
}
let str1 = GetHelloStr("World");
let str2 = GetHelloStr("There");
let str3 = GetHelloStr("There Again");

但在这种情况下,不会重复使用模板字符串。每次调用 GetHelloStr 都会创建一个新字符串,该字符串的性能不佳。

可以通过标记模板类似地完成此操作

function HelloStr(strings, target){
  return `Hello ${target}`;
}
let str1 = HelloStr`${'World'}`;
let str2 = HelloStr`${'There'}`;
let str3 = HelloStr`${'There Again'}`;

这也不会重用模板字符串。我宁愿使用函数方法。

我还发现了一个库,确切地处理这种情况:https://github.com/davidchambers/string-format

可悲的是,这些都不像绳子一样优雅。C# 格式

 类似资料:
  • 问题内容: 我想使用React在整个DOM中多次添加组件。这个小提琴显示了我要执行的操作,并且不会引发任何错误。这是代码: HTML: JS: 我已经看过这个问题了,恐怕通过上述操作,我将冒使React组件相互干扰的风险。该问题的答案建议使用服务器端渲染,这对我来说不是一个选择,因为我正在使用Django服务器端。 另一方面,也许我在做什么就可以了,因为我只安装了一个React库实例(而不是多个组

  • 问题内容: 加载Angular应用后,我需要一些模板可以脱机使用。 这样的事情将是理想的: 问题答案: 有一个 模板缓存服务 :$ templateCache ,可用于在javascript模块中预加载模板。 例如,取自文档: 甚至还有一个艰巨的任务,可以从html文件中预先生成一个javascript模块:grunt-angular- templates 另一种可能不太灵活的方法是使用 内联模板

  • 我正在学习mock,我想知道我是否可以使用类似的代码: 验证身份验证是否成功。 服务。AuthenticateUser(用户用户): 如您所见,login方法返回一个播放器,但是有没有可能告诉Mockito我只想拿回有效的东西?因此,我可以测试身份验证是否成功,例如: ^这种方法目前不起作用,它在存根上进行了失败的测试。 编辑:我尝试了两种不同的方法: 这些规范符合要求,但我不确定它们是否真的很好

  • 问题内容: 我发现自己一次又一次地重复相同的代码片段,是否有可能在AngularJS中执行类似的操作: 上面的输出将是: 我不一定要寻找确切的“ ng:include”解决方案或模式,而是会减少模板中重复次数的方法。 问题答案: 这应该是您想要的。 脚本和ng- include的 文档。

  • 在模板中使用自定义管道时,如下所示: 而且效果很好。 但它表明 用户名未定义

  • 目前,不允许在接口中使用get/set方法(访问器)。例如: 此外,TypeScript 不允许在类方法中使用数组函数表达式:例如: 有没有其他方法可以在接口定义上使用getter和setter?