我有以下的JavaScript代碼:JavaScript對象文字和陣列
oCoord = {x: null, y: null};
var aStack = [];
oCoord.x = 726;
oCoord.y = 52;
aStack.push(oCoord);
oCoord.x = 76;
oCoord.y = 532;
aStack.push(oCoord);
oCoord.x = 716;
oCoord.y = 529;
aStack.push(oCoord);
現在這產生下述結構(三個對象的陣列)。
Array[Object, Object, Object];
但是,當我嘗試訪問每個對象的屬性時,它們都出來了。爲什麼是這樣?
alert(aStack[0].x); // Outputs 716
alert(aStack[1].x); // Outputs 716
alert(aStack[2].x); // Outputs 716
我在做什麼錯?
AFAIK你不能在JS「重新申報」變量,則`var`部分將只是被忽略,這個答案會在沒有額外的`var`s的情況下工作(即只有o = {})。 – cic 2009-07-09 09:30:46
cic是正確的,你不是每次都聲明一個新的變量,而是你在任何地方都使用相同的變量o,但是給它賦值新的值。 – 2009-07-09 09:58:46