Tengo algunas JS que verás a continuación. Quiero que el objeto de la clase interna pueda acceder a su padre. Necesita acceder a los métodos y propiedades principales. La forma en que lo he hecho funciona, pero me gustaría saber si hay algo que pueda hacer en el constructor de clase interna para obtener el padre, en lugar de que el padre tenga que decirle explícitamente al hijo quién es su padre. Parece torpe.¿Mejor forma de que el objeto secundario acceda al objeto principal?
<html>
<body>
<script>
function ChildClass(name){
//this.myParent= no way of knowing .....
this.myName=name;
this.whereDidIComeFrom=function(){
document.write(this.myName+ " came from " +this.myParent.dad+"<br>");
}
}
function ParentClass(name){
this.dad=name;
this.myChild=new ChildClass(name+"son");
this.myChild.myParent=this; //only way I know for myChild to access parent
this.myChild.whereDidIComeFrom();
}
var parentDavid = new ParentClass("David");
var parentJohn = new ParentClass("John");
</script>
</body>
</html>
El resultado de la ejecución que se ve así:
Davidson vino de David
Johnson vino de John
Lo pregunto porque la estructura anterior ya existe en el proyecto que estoy manteniendo. No puedo ir a rediseñar todo. Es solo ahora que el objeto hijo tiene que acceder a su padre. Anteriormente no era necesario. Sería bueno no tener que cambiar la clase para padres y hacer todos mis cambios dentro del niño. Pero si lo que tengo es básicamente "lo que tienes que hacer", entonces que así sea.
Gracias T-Bull. Lo más probable es que agregue una función de introducción de esa manera. – Dee2000