gpt4 book ai didi

javascript - 数组中奇怪的 JavaScript 对象赋值

转载 作者:行者123 更新时间:2023-11-28 02:41:42 26 4
gpt4 key购买 nike

在 JavaScript 中将对象分配给数组时,我遇到了一个奇怪的问题,这里是完整的代码

var co = {'yAxis':10};

var dynCharts = new Array();

for (var x=0; x<2; x++){
dynCharts[x] = co;
}
//assigning to first array only
dynCharts[0].yAxis = { 'a':'1'};
//now alert second array
alert(dynCharts[1].yAxis.a);

如果上面的示例代码首先我有一个名为 co 的对象,那么我将该对象分配给数组。现在我想更改第一个数组的 yAxis 属性,但它也会更改第二个数组的 yAxis 对象的值。

这段代码的JSfiddle在这里:http://jsfiddle.net/qvKaZ/

有人可以帮助我为什么会发生这种情况如何以属性(property)方式做到这一点吗?

最佳答案

数组的所有单元格中都有相同的对象(即相同的实例)。

您需要复制(克隆)co,以便一项更改不会应用于所有单元格:

for (var x=0; x<2; x++){                  
dynCharts[x] = {yAxis:co.yAxis}; // this puts in dynCharts[x] a copy of co
}

关于javascript - 数组中奇怪的 JavaScript 对象赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12546686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com