Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/10/2010, 19:44
zaqpz
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 19 años, 4 meses
Puntos: 2
Problema con this y dos objetos relacionados

Estimados, he estado buscando la forma de hacer lo que explicaré a continuación pero me ha resultado imposible. Mi idea es sencilla: tengo dos objetos relacionados de tal forma en que uno de ellos crea al otro. El objeto creado "objeto hijo" necesita comunicarse con el objeto creador "objeto padre" de alguna manera para solicitar sus servicios. En otros lenguajes, como PHP, suelo crear al objeto hijo enviando a su constructor una referencia a this para que de esa forma el hijo pueda invocar a métodos del padre. Pero esto me ha resultado imposible con JS.

Este es el código que no me funciona (resumido al máximo para fines didácticos

Código Javascript:
Ver original
  1. function testObject()
  2. {
  3.     var object2=new testObject2(this);
  4.     object2.testFunction();
  5.    
  6.     this.saySomething=function()
  7.     {
  8.         alert('testObject');
  9.     }
  10. }
  11.  
  12. function testObject2(handlerReference)
  13. {
  14.     var handler=handlerReference;
  15.    
  16.     this.testFunction=function()
  17.     {
  18.         handler.saySomething();
  19.     }
  20. }
  21.  
  22. function init()
  23. {
  24.     var object=new testObject();
  25. }

testObject() está creando una instancia de testObject2() enviandole una referencia a this. Luego desde testObject2 trato de acceder al objeto creador pero obtengo el error "handler.saySomething is not a function".

¿Cómo debo hacer para enviar al objeto "hijo" una referencia del padre para utilizar sus métodos?
Gracias de antemano.
__________________
R4DS en español | R4DS en inglés