Escribí "referencia" entre comillas para trazar un paralelismo con lenguajes como php. A ver si puedo aclarar un poco. Fijate que estas 2 porciones de código son parecidas, pero producen resultados muy diferentes:
Código PHP:
<script type="text/javascript">
function uno(){
this.b=1;
}
uno.prototype.setB=function(x){this.b=x}
function dos(){}
dos.prototype=new uno;
var z=new dos;
var x=new dos;
z.setB(100)
alert(z.b);
alert(x.b);
</script>
Código PHP:
<script type="text/javascript">
function uno(){
this.b={a:2};
}
uno.prototype.setB=function(x){this.b.a=x}
function dos(){}
dos.prototype=new uno;
var z=new dos;
var x=new dos;
z.setB(5)
alert(z.b.a);
alert(x.b.a);
</script>
Notá la similitud con el código que posté anteriormente.