深拷贝递归
function deepCopy(p){
var c = arguments[1] ? arguments[1] : {};
for(var i in p){
//过滤p对象中不属于自己的属性
if(p.hasOwnProperty(i){
//typeof判断对象时,需要排除下基本数据类型null
if(typeof p[i] === 'object' && p[i] !== null){
//通过判断拷贝的元素是否为数组,决定拷贝类型
c[i] = Array.isArray(p[i]) ? [] : {};
deepCopy(p[i], c[i]);
} else {
c[i] = p[i];
}
}
}
return c;
}
//判断数组的方法
function isArray(obj){
return Object.prototype.toString.call(obj) === '[object Array]'
}