gpt4 book ai didi

javascript - 有人可以向我解释这个 javascript 对象 "copy"的行为吗

转载 作者:数据小太阳 更新时间:2023-10-29 04:32:50 28 4
gpt4 key购买 nike

我有以下代码(我正在使用 jQquery 库):

var obj = {};
var objstring = '{"one":"one","two":"two","three":"three"}'

// first console output
console.log(objstring);

var jsonobj = $.parseJSON(objstring);

// second console output
console.log(jsonobj);

obj.key = jsonobj;
obj.key.test = "why does this affect jsonobj? (even in the second console output)";

// third console output
console.log(jsonobj);

我的问题:当我执行 obj.key = jsonobj 并更改新 obj.key 中的值时。为什么 jsonobj 中的值也会发生变化?我将如何避免这种情况? (我想要一个 jsonobj 的新“副本”)。

我做了这个测试用例:http://jsfiddle.net/WSgVz/

最佳答案

我想解决这里发生的一小部分问题,因为其他人已经很好地解决了 JavaScript 对象引用的更大问题:

// second console output
console.log(jsonobj);

obj.key = jsonobj;
obj.key.test = "why does this affect jsonobj? (even in the second console output)";

这是 documented WebKit bug 的结果, console.log 语句在调用 console.log 时不输出对象,而是在一段时间后输出。

关于javascript - 有人可以向我解释这个 javascript 对象 "copy"的行为吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6601784/

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