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