В Javascript объекты могут быть вложенными, создавая иерархическую структуру. Однако доступ к родительскому объекту из вложенного дочернего объекта может оказаться затруднительным.
Рассмотрим следующий вложенный объект:
obj: { subObj: { foo: 'hello world' } };
Чтобы ссылаться на подобъект внутри s, мы используем:
var s = obj.subObj;
Теперь мы хотим получить родительский объект obj, используя s.
К сожалению, в Javascript нет прямого механизма для извлечения родительского объекта из дочернего объекта. Это связано с тем, что дочерние объекты не знают о существовании своих родительских объектов.
Альтернативное решение
Одним из обходных путей является использование функции для установления отношений родитель-потомок внутри вложенных объектов. . Расширение приведенного выше кода:
var main = {
name : "main object",
child : {
name : "child object",
parent : null
},
init : function() {
this.child.parent = this;
delete this.init;
return this;
}
}.init();
В функции init мы присваиваем родительский объект родительскому свойству дочернего объекта. Вызывая это, мы ссылаемся на текущий объект (т. е. основной) изнутри вложенного дочернего объекта. Наконец, для ясности кода мы удалим функцию init.
Используя этот метод, мы теперь можем получить доступ к родительскому объекту из дочернего объекта:
main.child.parent.name // returns "main object"
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3