Самым простым изменением вашего кода будет сохранение содержимого thisModule
- просто присвойте свойству B
значение thisModule
, а затем верните thisModule
вместо возврата только { B:B }
:
var root = (function(thisModule){
function A(){ }
function B(){ } //public method
thisModule.B = B;
return thisModule;
})(root || {});
Если root
подразумевается как глобальный, то может быть немного понятнее, если вы явно ссылаетесь на window.root
, в противном случае вы можете столкнуться с ошибками, если случайно поместите этот фрагмент где-то, кроме верхнего уровня:
window.root = (function(thisModule){ ...
В качестве примечания, если ваш процесс сборки использует Babel (что должно быть в любом серьезном проекте), вы можете рассмотреть возможность использования сокращенных свойств для уменьшения синтаксического шума, например:
return{ D };
вместо
return{ D: D };
, что может быть полезно, если имена методов длинные - меньше синтаксического шума.