2016-05-18 9 views
-1

おそらくこれはばかな質問:)Javascript変数の割り当て|

var x = [1, 2, 3]; 
var y = x; // Value of x is stored in y 
y[0] = 5; 
alert(x[0]); // returns 5. Why? 

xは、[0]理想的に1であるべきであるが、なぜそれ5ですか?

+4

変数 'x'と' y'は、同じ配列への参照を保持します(これはオブジェクトの値です)。 1つの配列しかありません。それは、あなたが変更している '0'インデックスを持つ配列です。 – Bergi

+0

配列の参照*ではなく*値*をコピーしました。何をするかは、実際には配列をクローン化することです。 –

答えて

1

xは配列の最初の要素のアドレスを含み、x = yはそれをyに渡します。したがって、y [0]はx [0]と同じです。これは、x [0]がアドレスをx + 0、y [0]をy + 0とするためです。 yとxは同じなので、y [0]とx [0]は同じ場所を指します。

+0

ありがとうございました@Akshey – Mahendhar

関連する問題