Albuss, quiero que te des una idea de como funciona interiormente.
Existen estos tipos de variables en JavaScript
string, number(enteros y flotantes ), function y object
la parte de las variables de function no conozco mucho, asi que no las voy a tomar.
pero por ejemplo si haces esto
Código Javascript
:
Ver originalvar usuario = {'nombre':'Albuss'}
var b = usuario
b.nombre = 'Brian'
alert(usuario.nombre); // retorna Brian
Ahora, que es lo que paso, b no tendria que ser independiente de usuario ? es decir, b no tendria que ser un objeto nuevo ?
no, ya que las variables usuario y b son
punteros, los cuales apuntan a una direccion de memoria, donde se encuentra el objeto.
todas las listas , objetos y objetos obtenidos de clases, son del tipo object. es decir que solo se encuentran mediante punteros
esto no pasa con las cadenas o los numeros, ya que no contienen punteros, sino el valor en si, asi que no ocurriria lo mismo que los objetos.
llendo a tu caso, yo podria hacer lo siguiente
Código Javascript
:
Ver originalfunction PrototipoUno(){
this.CreateObject = function(){
this.ObjetoPrueva = new PrototipoDos();
}
}
function PrototipoDos(){
this.existo = true;
}
var prototipo = new PrototipoUno();
prototipo.CreateObject()
var a = prototipo.ObjetoPrueva;
var b = prototipo.ObjetoPrueva;
var c = prototipo.ObjetoPrueva;
var d = prototipo.ObjetoPrueva;
d.existo = false;
prototipo.ObjetoPrueva.existo // false
es decir, ahí estoy creando punteros, pero no estoy copiando al objeto
un saludo