JavaScript对象文字和数组

324*_*423 2 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);
Run Code Online (Sandbox Code Playgroud)

现在,这将创建以下结构(三个对象的数组).

Array[Object, Object, Object];
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试访问每个对象的属性时,它们都是相同的.为什么是这样?

alert(aStack[0].x); // Outputs 716
alert(aStack[1].x); // Outputs 716
alert(aStack[2].x); // Outputs 716
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Egi*_*sen 12

您对所有坐标对象使用相同的oCoord.

试试这个:

var aStack = []; 
aStack.push( { x: 726, y: 52} );
aStack.push( { x: 532, y: 76} ); 
aStack.push( { x: 716, y: 529} );
Run Code Online (Sandbox Code Playgroud)