Клонирование объектов
В 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; };