方法一:
JSON.parse(JSON.stringify(obj))
方法二:
function deepClone(obj) {
//过滤特殊情况
if (obj === null) return null;
if (typeof obj !== "object") return obj;//基本数据类型时
// 如果是正则
if (obj instanceof RegExp) {
return new RegExp(obj);
}
// 如果是时间对象
if (obj instanceof Date) {
return new Date(obj);
}
// 如果是函数
if(obj instanceof Function){
return new Function(obj);
}
//不直接创建空对象目的:克隆的结果和之前保持相同的所属类
let newObj = new obj.constructor;
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
newObj[key] = deepClone(obj[key]);
}
}
return newObj;
}