У меня есть JS, который вы увидите ниже. Я хочу, чтобы объект внутреннего класса имел доступ к своему родителю. Ему нужен доступ к родительским методам и свойствам. То, как я это сделал, работает, но я хотел бы знать, есть ли что-то, что я могу сделать во внутреннем конструкторе класса, чтобы получить родительский элемент, вместо того, чтобы родитель явно указывал ребенку, кто он родитель. Это кажется неуклюжим.
<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>
Результат выполнения выглядит следующим образом:
Дэвидсон пришел от Дэвида
Джонсон пришел от Джона
Я спрашиваю, потому что указанная выше структура уже существует в проекте, который я поддерживаю. Я не могу переделывать все это. Только теперь дочерний объект должен получить доступ к своему родительскому. Раньше в этом не было необходимости. Было бы неплохо вообще не менять родительский класс и делать все свои изменения внутри дочернего. Но если то, что у меня есть, в основном «то, что тебе нужно сделать», пусть будет так.