Такой вот вопрос — можно ли и как создать копию обьекта
var o1 = new Object;
o1.a = 1;
o1.b = 2;
var o2 = o1;
o2.a=9;
После этого o1.a тоже становится 9, т.е. o1 и o2 — разные имена одного и того же обьекта. А как создать именно копию, чтобы всякие изменения ее не влияли на оригинал? Есть вот такой способ:
var o2 = new Object;
var i;
for( i in o1 )
o2[i] = o1[i];
но так не всегда все свойства копируются. Есть ли более правильный способ?