我们使用谷歌闭包作为中型JavaScript项目的构建工具。为了更容易保护代码,我们打开了ADVANCED_OPTIMIZATION选项。结果是大量dangerous use of the global this object
警告。
有几种解决方法,如here,但我发现它们并不令人满意。让我烦恼的第一件事就是将所有内容放在全局命名空间中。从功能编程的旧时代开始,这是一种非常糟糕的架构风格吗?这意味着每当发生全球性变化时,整个项目都会发生变化......
另一种解决方案是在整个代码中使用@constructor注释。这会将几乎每个对象方法都改变为(记录的)构造函数(我们有超过一千个......)。在开始注释所有内容之前:使用注释方法是否安全(例如,优化后代码是否正常工作)?也许代码在注释方法中没有被混淆?
上面这两个真的没有更好的选择吗?