一、什么是深拷贝
深拷贝不会拷贝引用类型的引用,而是将引用类型的值全部拷贝一份,形成一个新的引用类型
二、深拷贝具体有哪些方法
1. 使用JSON.stringify()以及JSON.parse()
优点:此方法代码简洁
缺点:不能拷贝undefined、function这些类型的属性
2. 递归
function deepCopy (obj) {
if (obj && typeof obj === 'object') {
var target = Array.isArray(obj) ? [] : {}
for (k in obj) {
if (obj.hasOwnProperty(k)) {
target[k] = obj[k] && typeof obj[k] === 'object' ? deepCopy(obj[k]) : obj[k]
}
}
return target
} else {
return obj
}
}
优点:能拷贝undefined、function这些类型的属性