Normalmente, se hace así:
Código PHP:
<script>
var obj=(function(){
var mPriv={
metodo:function(m){alert(m);},
propiedad:'algo';
}
return {
extend:function(o){
for(var i in mPriv)
o[i]=mPriv[i];
return o;
},
add:function(o){
for(var i in o)
mPriv[i]=o[i];
}
}
})()
var pp={}
var nuevo={
nuevoMetodo:function(m2){alert(m2);}
}
obj.add(nuevo);
pp=obj.extend(pp);
pp.metodo('hola');
alert(pp.propiedad);
pp.nuevoMetodo('abc');
</script>
Con el método add agregás nuevos métodos a tu objeto base y con extend hacés que cualquier objeto herede las propiedades y métodos de ese objeto base (más o menos como hacen los frameworks)