Ver Mensaje Individual
  #5 (permalink)  
Antiguo 21/05/2013, 19:14
Avatar de chwc
chwc
 
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: Es verdad que no puedo crear un objeto dentro de un método de otro objeto?

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 original
  1. var usuario = {'nombre':'Albuss'}
  2. var b = usuario
  3. b.nombre = 'Brian'
  4.  
  5. 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 original
  1. function PrototipoUno(){
  2.   this.CreateObject = function(){
  3.    this.ObjetoPrueva = new PrototipoDos();
  4.   }
  5. }
  6.  
  7. function PrototipoDos(){
  8.  this.existo = true;
  9. }
  10.  
  11. var prototipo = new PrototipoUno();
  12. prototipo.CreateObject()
  13.  
  14.  
  15. var a = prototipo.ObjetoPrueva;
  16. var b = prototipo.ObjetoPrueva;
  17. var c = prototipo.ObjetoPrueva;
  18. var d = prototipo.ObjetoPrueva;
  19. d.existo = false;
  20.  
  21. prototipo.ObjetoPrueva.existo // false

es decir, ahí estoy creando punteros, pero no estoy copiando al objeto

un saludo
__________________
Hangouts de JavaScript todos los jueves 20hs GMT, Unite !
https://plus.google.com/u/0/108504944676960830886