0

私はJavaScriptの決定的なガイドを読んでいて、コードがあります:

var o = {x:1,y:{z:3}}; // An example object
var a = [o,4,[5,6]]; // An example array that contains the object
o.x // => 1: property x of expression o
o.y.z // => 3: property z of expression o.y
o["x"] // => 1: property x of object o
a[1] // => 4: element at index 1 of expression a
a[2]["1"] // => 6: element at index 1 of expression a[2]
a[0].x // => 1: property x of expression a[0]

最後の行を除いて、これのどれも私には問題ではありません。a [0] .xはどのように1と評価されますか?多次元配列'a'に属するプロパティxはありません。わかりません。プロパティa[0].xは「o」にありますか?これは私を混乱させます...

コメントや回答を事前に感謝します...

4

3 に答える 3

3

最初の行はo、を定義し、2番目のセットはa[0]として定義しoているので、次のようになります。

a[0] === {x:1,y:{z:3}};

したがって:

a[0].x === 1;

これは、次のことが当てはまることも意味します。

a[0].y.z === 3;

a[0].xだからあなたは、プロパティがで見つかっていると言ったのは正しかったo

于 2012-08-29T08:05:56.010 に答える
1

a[0]はオブジェクトと等しく、o3行目を理解していますが、どこに問題がありますか?

于 2012-08-29T08:07:09.620 に答える
1

「a」は配列であるため、「a」は複数の値を格納でき、この値のそれぞれが一意の場所に格納されます。配列から値を取得するには、その値がどこに(どこに)格納されているかを知る必要があります。あなたの例にたどり着くために、あなたはと呼ばれる配列を持っています:

var a = [o、4、[5,6]];

配列に値を追加する場合、デフォルトでは0から始まる位置に格納されます。したがって、配列aの0の位置にはオブジェクトo(このステートメントの1行前に定義)があり、位置1には値4があります。位置2には別の配列があります[5、6]。

配列から値を取得するには、その位置を知る必要があるため、配列aからオブジェクトoを取得するには、次のように記述する必要があります。

a [0]

したがって、これはオブジェクトoを使用するのと同じです(oはこの配列の0の位置にあるため)。

オブジェクトにはプロパティがあります。オブジェクトからプロパティを取得するには、を使用する必要があります。(ドット)演算子(他の方法もあります)。したがって、オブジェクトoからプロパティxを取得するには、次のように記述する必要があります。

結論として、a [0] .xと書くことで、あなたは私にoxを与えると言っているだけです。それは同じことです。

于 2012-08-29T08:20:34.167 に答える