У меня такая проблема. Есть объекты (условно - ячейки) в которых свалена куча других объектов (пусть будут карточки). Карточки можно таскать из одной ячеки в другую по одной и пачками, у них могут меняться свойства, кадры клипа и т.п. Ко всей этой конструкции мне нужно сделать кнопку "отменить перемещение". Для этого хотелось бы запоминать состояния ячейки из которой тащат карточки и ячейки, в которую кладут карточки до претаскивания, а потом просто возвращать ячейкам исходные состояния.
Я создаю Object (ячейку), в нём куча своиств и массив карточек, который тоже заполнен Object'ами. Вопрос - можно ли как-то исхитриться и клонировать объект со всеми его внутренними объектами. Т.е. чтобы в переменной получался новый объект с идентичными свойствами, а не ссылка на "клонируемый" объект.
Должно получиться что-то вроде.

Код:
var obj, objClone;
obj = new Object;
obj.subObj = new Object;
obj.subObj.value = 100;
objClone = ... // Шаманизм, в котором клонируется obj
obj.subObj.value = 0;
trace(objClone.subObj.value); // Должно вернуть 100, а не 0, т.к. объект клонируется, а не передаётся по ссылке