我有以下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

我究竟做错了什么?

最佳答案

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

尝试以下方法:

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

关于javascript - JavaScript对象文字和数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1102694/

10-12 00:52