什么是深拷贝
在JavaScript中,深拷贝是指创建一个新对象,该对象具有原始对象的所有属性和值,但原始对象本身并没有引用。这很重要,因为如果你改变新的对象,原始对象不会受到影响。
我们可以通过使用递归来实现深拷贝,例如如下代码:
function deepClone(obj) {
if (obj === null || typeof obj !== 'object') return obj;
let copy = obj.constructor();
for (let attr in obj) {
if (obj.hasOwnProperty(attr)) copy[attr] = deepClone(obj[attr]);
}
return copy;
}
let originalObject = {
name: 'John Doe',
age: 30,
address: {
street: '123 Main St',
city: 'Anytown',
state: 'CA',
zip: '12345'
}
};
let deepCopy = deepClone(originalObject);
console.log(deepCopy);