Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Объект как свойство объекта (https://javascript.ru/forum/misc/7729-obekt-kak-svojjstvo-obekta.html)

Cooskon 16.02.2010 21:09

Объект как свойство объекта
 
Если объект является свойством другого объекта, можно-ли как-нибудь напрямую из дочернего объекта получить доступ к свойствам и методам родительского? Вроде того:

var a=new Parent();
a.boom=1;
a.child=new Child();
// Вроде
alert( a.child.getParentObject().boom );

// Пример, конечно, дурацкий, но, думаю, суть ясна.


Или всё-таки придётся задавать дочернему объекту свойство со ссылкой на родительский?

Kolyaj 16.02.2010 21:15

var a1 = new Parent();
var a2 = new Parent();
var child = new Child();
a1.child = child;
a2.child = child;
Какой из a1 и a2 родитель?

Cooskon 16.02.2010 21:23

Я далеко не гуру JS, так что, ежели что, поправьте:

Здесь у двух объектов в свойствах один и тот же объект. Мне же интересен случай, когда свойству родительского объекта присваивается новый экземпляр дочернего класса. Как нибудь можно это сделать без прямого указания родительского в свойствах дочернего при создании дочернего?

Kolyaj 16.02.2010 21:26

Цитата:

Сообщение от Cooskon
Как нибудь можно это сделать без прямого указания родительского в свойствах дочернего при создании дочернего?

Нет, объект ничего не знает о ссылках на себя.

Cooskon 16.02.2010 21:28

Спасибо

Cooskon 16.02.2010 21:36

И вот ещё оффтоп-вопрос напоследок, чтобы не создавать лишней темы. Никак не могу разобраться:

Цитата:

Сообщение от Kolyaj (Сообщение 45084)
var a1 = new Parent();
var a2 = new Parent();
var child = new Child();
a1.child = child;
a2.child = child;
Какой из a1 и a2 родитель?

Здесь, как я понимаю, a1 и a2 получают ссылку на объект, и, к примеру, при
a1.child.property='somewhat';
a1.child.property тоже изменится. А как копировать объект child в свойства a1 и a2, чтобы a1.child не зависел от a2.child ?

Kolyaj 16.02.2010 21:41

Цитата:

Сообщение от Cooskon
А как копировать объект child в свойства a1 и a2, чтобы a1.child не зависел от a2.child ?

Создать новый объект и скопировать в него все свойства.


Часовой пояс GMT +3, время: 21:05.