У меня возникли проблемы с тем, чтобы эта структура кода выдержала обфускацию с помощью 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;
Но кажется, что что-то ломается либо при вызове методов-прототипов, либо при выполнении их соответствующих замыканий.
Любая помощь приветствуется.