自己使用的深拷贝方法
// 深拷贝
function deepCopy (obj) {
// 判断是基础数据类型 还是 引用数据类型 基础数据类型直接返回
if (!isObject(obj)){
return obj;
};
// 判断是否是日期类型 日期类型默认前延 8个小时 加上8个消失
if(obj instanceof Date){
return new Date(new Date(obj).valueOf() + (8 * 3600 * 1000));
}
// 判断是对象还是数组
var result = Array.isArray(obj) ? [] : {};
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
if (isObject(obj[key])) {
result[key] = deepCopy(obj[key]); //递归复制
} else {
result[key] = obj[key];
}
}
}
return result;
function isObject (obj) {
return typeof obj == 'object' && obj !== null;
}
}