function deepCopy(obj){
const copy = Object.create(Object.getPrototypeOf(obj));
var keys = Object.getOwnPropertyNames(obj);
keys.forEach(key => {
const descriptor = Object.getOwnPropertyDescriptor(obj, key);
if (Object.prototype.toString.call(descriptor.value) === "[object Object]") {
descriptor.value = deepCopy(descriptor.value)
}
Object.defineProperty(copy, key, descriptor);
})
return copy
}
var obj = { a: {b: 666} };
var copyObj = deepCopy(obj);
console.log(copyObj); // { a: {b: 666} }
发表回复