JavaScript では、オブジェクトをネストして階層構造を作成できます。ただし、ネストされた子オブジェクトから親オブジェクトにアクセスするのは難しい場合があります。
次のネストされたオブジェクトを考えてみましょう:
obj: { subObj: { foo: 'hello world' } };
s 内のサブオブジェクトを参照するには、次を使用します:
var s = obj.subObj;
次に、次を使用して親オブジェクト obj を取得します。 s.
残念ながら、JavaScript には子オブジェクトから親オブジェクトを取得する直接的なメカニズムはありません。これは、子オブジェクトが親の存在を知らないためです。
代替解決策
回避策の 1 つは、ネストされたオブジェクト内で親子関係を確立する関数を利用することです。 。上記のコードを拡張します:
var main = {
name : "main object",
child : {
name : "child object",
parent : null
},
init : function() {
this.child.parent = this;
delete this.init;
return this;
}
}.init();
init 関数では、親オブジェクトを子オブジェクト内の親プロパティに割り当てます。これを呼び出すことで、ネストされた子オブジェクト内から現在のオブジェクト (つまり、main) を参照します。最後に、コードをわかりやすくするために init 関数を削除しました。
この手法を使用すると、子から親オブジェクトにアクセスできるようになります。
main.child.parent.name // returns "main object"
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3