1

我喜欢 Hedger Wang 在他的帖子“使用闭包编译器编码更好的面向对象的 JavaScript”中提出的想法http://calendar.perfplanet.com/2010/coding-better-object-oriented-javascript-with-closure-compiler/,但他的示例并没有涵盖所有内容,并且有些示例似乎使用了与其他示例不同的样式。我一直在网上搜索特定问题的解决方案,并找到了一些解决方案,但每个解决方案似乎都与难题的其他部分不兼容。

任何人都可以提供一个完整的工作示例,同时涵盖以下所有内容:

  • 使用带有高级优化的 Google 闭包编译器
  • 使用注解,包括@type、@constructor、@enum...
  • 使用外部库的 externs 文件(例如 jQuery)
  • 导出用户定义的库“类”及其所有“公共函数”(并包括此类的 externs 文件)
  • 在自己的文件中有另一个“类”,它使用该库而无需重新编译该库
  • 避免现在和未来的命名冲突(命名空间?)
  • 尽可能避免全局变量(每个文件 1 个对我来说似乎是一个合理的目标。全局名称可以出现多次 - 我不介意每个文件进行一次搜索和替换,但我不想做多个这样的操作)
  • 包括用于编译整个内容的命令行
  • 没有错误或警告
  • 继承,接口,......的例子会很好,但我现在可以没有这些

好的,我知道这有点像一个列表,这就是为什么我无法让所有东西协同工作,但在我看来,这似乎是大中型项目的基本要求。我会继续用头撞墙一段时间,但如果有人已经做过这样的项目,我将永远感激不尽。

4

2 回答 2

0

看看这些视频。

http://www.youtube.com/watch?v=M3uWx-fhjUc

http://www.youtube.com/watch?v=OJ-vTq4lp10

都是关于 google Closure 的。

你也可以看看这本书。它摇摆不定

http://shop.oreilly.com/product/0636920001416.do

于 2012-07-07T22:40:07.727 回答
0

我的 Closure Compiler + KnockoutJS 样板覆盖了你的大部分项目符号。检查出来

于 2015-10-06T12:21:47.840 回答