我有以下代码(我用的是jQquery libary):有人可以解释我这个JavaScript对象“复制”行为
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/
出色的问题和测试用例。现在这种情况非常罕见,令人难以置信的令人难过。 –