概念
由于对象的特点,所以一般进行数据的复制时没办法复制对象的嵌套类型,当完全复制且对原对象完全没有引用关系时叫做深拷贝,否则叫做浅复制。 josn数据方式进行深拷贝
let a
= {
x
: 1,
y
: 2,
z
: {
a
: 4,
b
: 5
}
}
let copy
= JSON.parse(JSON.stringify(a
));
封装深拷贝方法(手写)
function copyClone(obj
){
let cloneobj
=Array
.isArray(obj
)?[]:{};
if(obj
.constructor
===Array
||obj
.constructor
===Object
){
Object
.keys(obj
).forEach((item
,index
)=>{
cloneobj
[item
]=obj
[item
];
if(obj
[item
].constructor
===Array
||obj
[item
].constructor
===Object
){
cloneobj
[item
]= copyClone(obj
[item
]);
}
})
}else{
cloneobj
=obj
;
}
return cloneobj
;
}
let b
=copyClone(a
);
a
.z
.a
=6
console
.log(b
);
console
.log(a
);
转载请注明原文地址:https://blackberry.8miu.com/read-47566.html