浅拷贝深拷贝

Posted zqxi

tags:

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

//================================浅拷贝

//ES6属性的简洁表达式

var obj1 = { ...obj };

//ES6  Object.assign()

var obj2 = Object.assign({},obj);

//for in

for( let k in obj){
  obj3[k] = obj[k];
 }

//================================深拷贝

//JSON.parse(JSON.stringify())

var obj4 = JSON.parse(JSON.stringify(obj));

// 递归

function fun(obj){
var obj1 = {};
for(let k in obj){
if(typeof(obj[k]) === "object"){
obj1[k] = fun(obj[k]);
}else{
obj1[k] = obj[k];
}
}
return obj1;
}
var obj5 = fun(obj);
obj5.a = 123;
obj5.c.aa = 456;
console.log(obj5,obj);

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

IOS 深拷贝和浅拷贝

VUE开发 - 深拷贝与浅拷贝探讨

什么是深拷贝和浅拷贝以及如何实现深拷贝

深拷贝和浅拷贝的区别?

Python3 & 浅拷贝与深拷贝

C#的浅拷贝和深拷贝