深拷贝

Posted liangzhixiaolaohu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深拷贝相关的知识,希望对你有一定的参考价值。

function deepClone(obj={}){
if (typeof obj !== "object" || obj == null) {
// obj是null,或者不是数组对象,直接返回
return obj;
}
// 初始化返回结果
let result;
if (obj instanceof Array) {
result = []
} else {
result = {}
}
 
for (let key in obj){
// 保证key不是原型的属性
if(obj.hasOwnProperty(key)){
// 递归
result[key] = deepClone(obj[key])
}
}
// 返回结果
return result;
}
const obj1 = {
name: ming,
address:{
city: beijing
},
arr:[1,2,3]
}
const obj2 = deepClone(obj1);
obj2.address.city = hangzhou
console.log(obj1.address.city); // beijing

 

以上是关于深拷贝的主要内容,如果未能解决你的问题,请参考以下文章

代码学习PYTHON 深拷贝和浅拷贝

c#中大家是怎么做深拷贝的?一定要自己手动写代码吗?

通过项目实战学习:深拷贝与浅拷贝的内涵,实现深拷贝的几种方法,深拷贝解决项目异常bug

js对象浅拷贝和深拷贝详解

iOS开发——深拷贝与浅拷贝详解

python深拷贝浅拷贝