«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как получить доступ к родительскому объекту вложенного дочернего объекта в JavaScript?

Как получить доступ к родительскому объекту вложенного дочернего объекта в JavaScript?

Опубликовано 20 ноября 2024 г.
Просматривать:256

How Can You Access the Parent Object of a Nested Child Object in JavaScript?

Объекты Javascript: определение родительского происхождения

В 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