Unless you are defining the submodule in the same lexical scope as the parent module, and doing some kind of closure over the "parent" private functions, you can't. You made the functions private, and so you need to be able to see them to call them. And you can't see them when defining a sub-module in a different place from the parent module. The only way you will get your desired structure is like this:
var Module = (function () {
function B() {
console.log("B");
};
var Utils = (function () {
function C() {
B();
};
return {
C: C
}
})()
return {
Utils: Utils
};
})();