Может кто-нибудь объяснить мне это поведение «копирования» объекта javascript

У меня есть следующий код (я использую библиотеку 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/

7
задан Lightness Races with Monica 6 July 2011 в 19:25
поделиться