Definir o campo Privado Membros e Herança no padrão do módulo JAVASCRIPT

Eu posso definir campos de membros privados no padrão de módulo usando o código abaixo

    var myClass = function(){
       var private_field1,private_field_2;
       var private_func1 = function(){
            //.......
       } 
       //.........
       var myObj = {
         global_field1:2,
         global_field2:"something",
         global_func: function(){//......} 
       }
       return myObj;
    };
   var obj = myClass();

Este método funciona muito bem, mas o problema com este problema é que sempre que eu crio um novo objeto a cópia de todas as funções é criada e carregada na memória (não como java onde todos os objetos da mesma classe compartilham a mesma memória de função)

Eu tentei usar outro método abaixo:

 var myClass = (function(){
           var private_field1,private_field_2;//private static fields
           var private_func1 = function(){
                //.......
           } 
           //.........
           var Constr = function(){
             //do something
           }
           Constr.prototype = {
             //................
             global_func: function(){//......} 
           }
           return Constr;
    }());
var obj1 = new myClass();
var obj2 = new myClass();

Mas o problema com este método é que, obviamente, obj1, obj2 compartilham a mesma cópia de campos privados (então, efetivamente, eles são estáticos). Então, existe uma maneira de definir campos privados no padrão de módulo ao usar a mesma cópia de funções para os objetos?

E para herança do primeiro método mencionado acima, primeiro preciso criar um objeto dentro da classe filho e depois retornar esse objeto.

 var ChildClass = function(){
      var childobj = myClass();
      //override or add functions to childobj
      return childobj ;
 }

Mas isso é efetivamente apenas envolvendo o objeto de baseClass em childClass, Existe alguma outra maneira de implementar o mesmo (para primeiro ou segundo método) para que ele possa agir como uma verdadeira herança java com métodos protegidos, privados, etc?

questionAnswers(1)

yourAnswerToTheQuestion