Objeto Deep Copy em Javascript

Crédito total para [ http://geniuscarrier.com/copy-object-in-javascript/][esta página da web] que reuniu vários exemplos. Este é apenas um bom lembrete para eu ter tudo no mesmo lugar.

function deepCopy(oldObj) {
var newObj = oldObj;
if (oldObj && typeof oldObj === 'object') {
newObj
= Object.prototype.toString.call(oldObj) === "[object Array]" ? [] : {};
for (var i in oldObj) {
newObj
[i] = deepCopy(oldObj[i]);
}
}
return newObj;
}