Luca, через замыкания можно организовать.
var MyModule = (function() {
    
     var Private = {
          bar: function() {
                alert(this.fooBar);
          }
     };
     function MyModule() {
          this.fooBar = 'foo bar';
     }
     MyModule.prototype = {
          foo: function() {
               Private.bar.call(this);
          }
     };
     return MyModule;
})();
var m = new MyModule;
m.foo();
console.log(m.bar); //undefined
Или как-то так:
var MyModule = function() {
	'use strict';
	var Private = {
		foo: function() {
			console.log(this.a);
		},
		bar: function() {
			console.log(this.b);
		}
	};
	var _ = {};
	function MyModule(a, b, c) {
		this.a = a;
		this.b = b;
		this.c = c;
		this[_.foo]();
		this[_.bar]();
		this.baz();
	}
	MyModule.prototype = {
		baz: function() {
			console.log(this.c);
		}
	};
	for(var i in Private) {
		if(Private.hasOwnProperty(i)) {
			MyModule.prototype[_[i] = Symbol()] = Private[i];
		}
	}
	return MyModule;
}();
var m = new MyModule(1, 2, 3);
//1, 2, 3
console.log(m.foo); //undefined
console.log(m.bar); //undefined
console.log(m.baz); //function ...