Maison  >  Article  >  interface Web  >  Comment obtenir l'objet parent d'un objet imbriqué en JavaScript ?

Comment obtenir l'objet parent d'un objet imbriqué en JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-25 03:14:29618parcourir

How to Get the Parent Object from a Nested Object in JavaScript?

Récupération d'un objet parent à partir d'un objet imbriqué en JavaScript

En JavaScript, l'accès aux objets imbriqués est une opération courante. Cependant, récupérer l'objet parent à partir d'un objet imbriqué peut s'avérer difficile.

Considérez le scénario suivant :

obj: { subObj: { foo: 'hello world' } };
var s = obj.subObj;

Maintenant, vous souhaitez obtenir une référence à l'objet parent obj à partir de la variable s. Existe-t-il une méthode pour y parvenir ?

La réponse

Malheureusement, les objets imbriqués en JavaScript n'ont pas d'accès direct à leurs objets parents. Par conséquent, il n'est pas possible de récupérer l'objet parent directement à partir de l'objet imbriqué.

Pour illustrer, considérons le code suivant :

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

Accéder au nom de l'enfant à partir de l'objet principal est simple (c'est-à-dire main.child.name). Cependant, tenter d'accéder au nom du parent à partir de l'objet enfant (c'est-à-dire main.child.parent.name) générera une erreur.

Solution alternative

Pendant que direct le référencement à partir de l'objet enfant n'est pas réalisable, il existe une approche alternative qui utilise une fonction.

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

Dans ce code, la fonction init ajoute une propriété parent directement à l'objet enfant, pointant vers l'objet parent . Après cette initialisation, vous pouvez accéder avec succès au nom du parent à partir de l'objet enfant en appelant main.child.parent.name.

Cette méthode est un peu peu orthodoxe mais offre une solution au problème de récupération de l'objet parent depuis un objet imbriqué en JavaScript.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn