Closure Compiler(高级模式) - 如何设计类?

时间:2013-04-13 13:38:39

标签: javascript google-closure-compiler

我有一个大致有这种结构的课程:

function MyClass() {
    // constructur stuff
}

MyClass.prototype.myFunc = function () {
    // example function
};

MyClass.myStaticFunc = function () {
    // example static function
};

我花了一些时间设置闭包编译器注释,最后摆脱了所有警告。而你知道什么,它的尺寸减少了100%。那么我读了关于导出函数的内容,但是window['MyClass'] = MyClass只会导出构造函数。说实话,我宁愿不单独导出每一种方法。我认为编译器会导出并且不会混淆所有公开可用的方法,而是那些带有@private注释的方法。

教导闭包编译器执行此操作的最佳方法是什么,而不必单独导出每个方法?

2 个答案:

答案 0 :(得分:2)

使用ADVANCED_OPTIMIZATIONS您必须导出每个公共方法和属性。如果您不希望重命名公共方法和属性,请使用SIMPLE_OPTIMIZATIONS

有关详细信息,请参阅我的Which Compilation Level is Right for Me帖子。

答案 1 :(得分:1)

我相信我找到了答案:我可以使用@export注释方法并使用--generate_exports运行编译器。但也许某人有更好的方式。