我无法让这个代码结构在 Google Closure Compiler 的混淆中存活下来。这是一些示例代码:
var MyModule = (function()
{
function myModule()
{
// Constructor
}
function moduleFoo(url)
{
// Method
}
function moduleBar()
{
// Method
}
myModule.prototype = {
constructor: myModule,
foo: moduleFoo,
bar: moduleBar
};
return myModule;
})();
在我的代码的其他地方,我需要能够编写如下内容:
var myMod = new MyModule();
myMod.foo();
myMod.bar();
但是编译器正在重命名所有内容(如预期的那样)。混淆后如何使我在代码中其他地方定义的原型可用?我尝试导出如下:
// In place of the prototype object above
myModule.prototype['constructor'] = myModule;
myModule.prototype['foo'] = moduleFoo;
myModule.prototype['bar'] = moduleBar;
window['myModule'] = myModule;
但是当原型方法被调用或者它们相应的闭包被执行时,事情似乎就崩溃了。
任何帮助表示赞赏。