Клонирование объектов
В JS присвоение объектов происходит по ссылке, как следствие, все операции происходят на одном экземпляре объекта. Чтобы создать копию объекта, надо создать новый пустой объект, рекурсивно присвоить ему свойства старого.
exports.deepCopy = function (obj) {
if (typeof obj != "object") {
return obj;
}
var copy = obj.constructor();
for (var key in obj) {
if (typeof obj[key] == "object") {
copy[key] = this.deepCopy(obj[key]);
} else {
copy[key] = obj[key];
}
}
return copy;
};