gpt4 book ai didi

javascript - 嵌套对象的更新,奇怪的行为

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

我有两个对象。在我的代码中的某个时刻,我希望将第一个对象的副本存储在第二个对象中。

到目前为止,一切正常。对奇怪的部分不。如果我对第一个对象进行任何更改,则相同的更改将应用​​于第二个对象(这不是本意)。我想那是因为两者之间保留了某种引用。

说明问题的示例:

//First object
var person = {
value: 1,
item: 2
}

//Second object
var objSum = {
contain: person,
info: "other stuff"
}

//Apply change to first object
person.value = 55;
//Echoing second object
console.log(objSum);
alert("done");

日志输出:包含 => 项目:2,值:55。信息:“其他东西”

我希望它是:包含 => 项目:2,值:1。信息:“其他东西”

这可能很简单,但我无法理解它。为什么会发生这种情况,如何预防

最佳答案

在将 person-object 分配给 objSum.contain 时,您需要克隆它,否则您将分配对原始对象的引用。最简单的方法是使用 jquery :

var objSum = {
contain: jQuery.extend({}, person);
};

var objSum = {
contain: jQuery.extend(true, {}, person);
};

如果人本身也包含对象

关于javascript - 嵌套对象的更新,奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19606415/

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