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!