2
var test = {
    one: {},
    two: {},
};
test['two'].parent = test['one'];

テストに必要なもの:

test = {
   one: {},
   two: { parent: {}, }

それが実際に持っているもの:

 test = {
    parent: {},
    two: { parent: {}, }

test.one が test.parent になるのはなぜですか?

test.two.parent が test.one への参照を保持するようにします。どうすればいいですか?

4

3 に答える 3

3

どのブラウザを使用していますか?それは違いを生むかもしれません。

FirefoxのFirebugで期待される結果のテストを受けていますが、プロパティアクセス構文(構文?構文?)を組み合わせて一致させることはお勧めしません。

それ以外の:

test['two'].parent = test['one'];

私はします:

test['two']['parent'] = test['one'];
于 2011-01-24T17:33:59.003 に答える
3

test.oneがtest.parentになるのはなぜですか?

そうではありません。結果の構造は次のとおりです。

{
one: {},
two: { parent: {} }
}

parentで参照されているのと同じオブジェクトを参照しているのはどこですかone

もし、するなら:

test.one.cheese = "crackers";

...以下の結果は「クラッカー」になります

alert(test.two.parent.cheese); // "crackers"

例: http: //jsfiddle.net/g5chF/

于 2011-01-24T17:34:06.783 に答える
1

この声明が何をするかについてのあなたの主張:

test['two'].parent = test['one'];

間違っています。このコードは、すでに目的を果たしています。「親」属性を に追加してtest.two、 に空のオブジェクトが存在するようにしますtest.two.parent

于 2011-01-24T17:33:39.003 に答える