Вы можете создать функцию " клон ", которая создаст новый объект на основе оригинального объекта конструктор , а затем клонировать оригинальные свойства объекта, даже если они являются объектами:
function clone(obj){
if(typeof(obj) != 'object' && obj != null)
return obj; // return the value itself if isn't an object
// or null, since typeof null == 'object';
var temp = new obj.constructor();
for(var key in obj)
temp[key] = clone(obj[key]);
return temp;
}
var a = {'foo': []};
var b = clone(a);
a['foo'].push(1);
console.log(b); // Object foo=[0]