let obj = {
name:‘1234‘,
age:123
}
方法1:
let aa = JSON.parse(JSON.stringify(obj));
缺点:如果obj中包含函数或者undefined等特殊属性,则拷贝时会丢失这些属性;
方法2:封装递归函数
function deepCopy (obj) {
let newObj = Array.isArray(obj)?[]:{}; //判断是数组还是对象
for (let v in obj) {
if (obj.hasOwnProperty(v)) { //自身上的属性才需要拷贝,原型上的不需要拷贝
if (typeof(obj[v]) === ‘object‘) { //如果属性是复杂类型,则需要继续进行深拷贝
newObj[v] = deepCopy(obj[v])
}else{
newObj[v] = obj[v];
}
}
}
return newObj;
}
let aa = deepCopy(obj);
console.log(aa)
原文:https://www.cnblogs.com/tianyl/p/12167290.html