JavaScript では、オブジェクトをネストして階層構造を作成できます。ただし、ネストされた子オブジェクトから親オブジェクトにアクセスするのは難しい場合があります。
次のネストされたオブジェクトを考えてみましょう:
<code class="javascript">obj: { subObj: { foo: 'hello world' } };</code>
s 内のサブオブジェクトを参照するには、次を使用します:
<code class="javascript">var s = obj.subObj;</code>
ここで、s を使用して親オブジェクト obj を取得したいとします。
残念ながら、JavaScript には子オブジェクトから親オブジェクトを取得する直接的なメカニズムはありません。これは、子オブジェクトが親の存在を知らないためです。
代替解決策
回避策の 1 つは、ネストされたオブジェクト内で親子関係を確立する関数を利用することです。 。上記のコードを拡張します:
<code class="javascript">var main = { name : "main object", child : { name : "child object", parent : null }, init : function() { this.child.parent = this; delete this.init; return this; } }.init();</code>
init 関数で、親オブジェクトを子オブジェクト内の親プロパティに割り当てます。これを呼び出すことで、ネストされた子オブジェクト内から現在のオブジェクト (つまり、main) を参照します。最後に、コードをわかりやすくするために init 関数を削除しました。
この手法を使用すると、子から親オブジェクトにアクセスできるようになります。
<code class="javascript">main.child.parent.name // returns "main object"</code>
以上がJavaScript でネストされた子オブジェクトの親オブジェクトにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。