1 对象

1-1 展开

  1. var obj = {
  2. name:"cheng",
  3. age:18
  4. }
  5. var a = {...obj};
  6. a.id =1001;
  7. console.log(a);
  8. console.log(obj);

1-2 Object.assign

  1. var a = Object.assign({},obj);
  2. a.id =1001;
  3. console.log(a);
  4. console.log(obj);

2 数组嵌套对象

  1. var arr = [{name:"cheng",age:18},{name:"zhang",age:19}];
  2. var b = [...arr]; //当是数组嵌套对象的时候,实现的是一个浅拷贝
  3. b.push({
  4. name:"vue",age:15
  5. })
  6. b[0].name = "wang"
  7. console.log(b);
  8. console.log(arr);
  1. var arr = [{name:"cheng",age:18},{name:"zhang",age:19}];
  2. //深克隆算法
  3. function deepClone(obj){
  4. let result ;
  5. if(Array.isArray(obj) || (typeof obj == "object") ){
  6. if(obj instanceof Array){
  7. result= [];
  8. }else{
  9. result = {};
  10. }
  11. for(let key in obj){
  12. result[key] = deepClone(obj[key]);
  13. }
  14. }else{
  15. return obj;
  16. }
  17. return result;
  18. }
  19. let res = deepClone(arr);