gpt4 book ai didi

javascript - 当创建一个新对象时,为什么它会更新旧对象?

转载 作者:行者123 更新时间:2023-12-02 19:23:17 24 4
gpt4 key购买 nike

当我从现有对象创建一个新对象,然后附加一个新属性时,为什么它会更新之前的属性?

他们的解决方案不需要太多更改我的代码吗?

Here is my example jsfiddle .

var data = [
{
"id" : 1,
"name" : "carrot",
"price" : 0.10,
"stock" : 12,
"bgLocation" : "-1px -54px"
},
{
"id" : 2,
"name" : "fennel",
"price" : 1.20,
"stock" : 6,
"bgLocation" : "-146px -52px"
}
]

var item = data[0];
item.added = 4;

//data[0] should not contain the added attribute.
$('body').append(JSON.stringify(data[0]));

最佳答案

变量itemdata只是指向同一对象的引用。通过调用。

var item = data[0];

您不是复制该对象,而是在使用data[0]寻址的对象上创建一个新引用。因此

item.added = 4;

将更改机器人 vraiables 指向的对象。

这里

How do I correctly clone a JavaScript object?

有关如何在 javascript 中复制对象的一些详细信息。

关于javascript - 当创建一个新对象时,为什么它会更新旧对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12283469/

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