实现深拷贝代码:
function deepClone(obj) {
var newObj = obj instanceof Array ? [] : {};
//obj属于基本数据类型,直接返回obj
if(typeof obj !== 'object') {
return obj;
} else {
//obj属于数组或对象,遍历它们
for(var i in obj) {
newObj[i] = typeof obj[i] === 'object' ? deepClone(obj[i]):obj[i];
}
}
return newObj;
}
简单的实现方式:深拷贝对象还有另一个解决方法,在对象中不含有函数的时候,使用JSON解析反解析就可以得到一个深拷贝对象
var obj = {a: 1};
var obj1 = JSON.parse(JSON.stringify(obj));
console.log(obj===obj1) //false;