Heim >Web-Frontend >js-Tutorial >Wie greife ich in JavaScript auf das übergeordnete Objekt eines verschachtelten Objekts zu?

Wie greife ich in JavaScript auf das übergeordnete Objekt eines verschachtelten Objekts zu?

DDD
DDDOriginal
2024-10-26 01:30:021019Durchsuche

How to Access the Parent Object of a Nested Object in JavaScript?

So erhalten Sie das übergeordnete Objekt eines verschachtelten Objekts in JavaScript

In JavaScript werden verschachtelte Objekte häufig verwendet, um Daten hierarchisch zu organisieren. Das Abrufen des übergeordneten Objekts eines verschachtelten untergeordneten Objekts kann jedoch etwas schwierig sein.

Betrachten Sie das folgende Beispiel:

const obj = { subObj: { foo: 'hello world' } };

const s = obj.subObj;

Die Variable s verweist jetzt auf das subObj-Objekt. Ist es möglich, von s eine Referenz auf das obj-Objekt (das übergeordnete Objekt) zu erhalten?

Nein, ein verschachteltes Objekt hat keinen direkten Zugriff auf sein übergeordnetes Objekt.

Dieses Konzept kann anhand eines anderen Beispiels veranschaulicht werden:

const main = {
    name: "main object",
    child: {
        name: "child object"
    }
};

Während „main“ auf „child.name“ zugreifen kann, kann „child“ nicht auf „main.name“ oder andere Eigenschaften von „main“ zugreifen.

Lösung verwenden eine Funktion

Um diese Einschränkung zu überwinden, kann eine benutzerdefinierte Funktion verwendet werden, um das untergeordnete Objekt mit einem Verweis auf sein übergeordnetes Objekt zu initialisieren:

const main = {
    name: "main object",
    child: {
        name: "child object"
    },
    init() {
        this.child.parent = this;
        delete this.init;
        return this;
    }
}.init();

Jetzt main.child.parent .name bietet Zugriff auf die Namenseigenschaft des Hauptobjekts.

Das obige ist der detaillierte Inhalt vonWie greife ich in JavaScript auf das übergeordnete Objekt eines verschachtelten Objekts zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn