5

我目前正在阅读“Javascript Web 应用程序”(O'Reilly,Alex MacCaw),很早就有一个代码片段,它可能看起来在 HTML 文档中执行 JS 函数,但它没有被<script>标签包围:

// template.html
<div>
  <script>
    function doSomething(aParam) {
      /* do stuff ... */
    };
  </script>
  ${ doSomething(this.someX) }
</div>

请有人能解释一下美元符号花括号符号吗?我目前正在学习 JS,但我以前从未见过这个,所以我假设它是代码执行的 JS 简写(如果是这样,为什么没有终止分号?),或者可能是一些专有的模板标记(Ruby ? PHP?),或者完全是别的什么?

非常感谢。

更新

事实证明,稍后在第 5 章(上述书)中,我们将介绍Javascript 模板。作者似乎假设读者在阅读本书之前已经遇到过这种模板技术。正如Stackoverflow 成员 Esailija所指出的,这本书不是Javascript 的初学者指南。我应该补充一点,我正在阅读这本书与“Javascript: The Good Parts”(O'Reilly,Douglas Crockford)等。

我半信半疑某种模板,但我没有考虑过纯 JS 模板。我过去使用过 PHP 和 RoR 框架,它们也使用类似的模板概念将模型数据注入视图。

最后一点:我阅读“Javascript Web 应用程序”的原因是它讨论了 JS 领域内的模型-视图-控制器 (MVC) 模式。虽然它提倡使用jQuery 库(以及其他库)来增强和加速开发,但它不是一本 jQuery API 书籍或另一个新的 JavaScript 包装器;相反,本书利用此类库(在适当的情况下)来处理跨浏览器 JS 的不一致性,同时将实际的 JS 最佳实践和模式引入到创建“Web 应用程序”中。

4

1 回答 1

2

它不应该是javascript,而是模板文件。模板文件包含静态 html 和非常愚蠢的表示逻辑,通常在这种情况下使用伪语言。它不应该包含任何真正的 javascript - 正如书中所说,这是你不应该做的事情。

然后,这本书进入了一个重构版本,只有静态 html 和伪语言语句。请参阅Javascript 模板

这本书似乎是针对那些已经精通 javascript 并且正在研究如何更好地构建 js 的人。

于 2011-12-30T00:22:58.083 回答