Mam następujący kod (używam libary jQquery):Może ktoś wyjaśnić mi ten JavaScript Object "kopia" zachowanie
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);
Moje pytanie: Kiedy ja obj.key = jsonobj i zmienić wartości w nowym obj.key. Dlaczego wartości w jsonobj również się zmieniają? I jak tego uniknąć? (Chcę nową "kopię" jsonobj).
Zrobiłem ten przypadek testowy: http://jsfiddle.net/WSgVz/
Znakomicie uformowane pytanie i testcase. To niewiarygodnie smutne, że jest to dziś tak rzadkie. –