JavaScript でネストされたオブジェクトから親オブジェクトを取得する
JavaScript では、ネストされたオブジェクトへのアクセスは一般的な操作です。ただし、ネストされたオブジェクトから親オブジェクトを取得するのは難しい場合があります。
次のシナリオを考えてみましょう:
obj: { subObj: { foo: 'hello world' } }; var s = obj.subObj;
ここで、変数から親オブジェクト obj への参照を取得したいとします。 s.これを実現する方法はありますか?
答え
残念ながら、JavaScript のネストされたオブジェクトは親オブジェクトに直接アクセスできません。したがって、ネストされたオブジェクトから親オブジェクトを直接フェッチすることはできません。
説明のために、次のコードを考えてみましょう。
var main = { name : "main object", child : { name : "child object" } };
メイン オブジェクトから子の名前にアクセスするのは次のとおりです。簡単です (つまり、main.child.name)。ただし、子オブジェクト (つまり、main.child.parent.name) から親の名前にアクセスしようとすると、エラーが発生します。
代替ソリューション
直接子オブジェクトからの参照は現実的ではありません。関数を利用する代替アプローチがあります。
var main = { name : "main object", child : { name : "child object" }, init : function() { this.child.parent = this; delete this.init; return this; } }.init();
このコードでは、init 関数は、親オブジェクトを指す親プロパティを子オブジェクトに直接追加します。 。この初期化の後、main.child.parent.name を呼び出すことで、子オブジェクトから親の名前に正常にアクセスできます。
このメソッドは少し型破りですが、親オブジェクトを取得する際の問題に対する解決策を提供します。 JavaScript のネストされたオブジェクト。
以上がJavaScript でネストされたオブジェクトから親オブジェクトを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。