32.深拷贝.html 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script>
  10. /**
  11. * 深拷贝:新值复制旧值得内容,修改新值时看旧值是否发生改变
  12. * 如果发生不改变就证明是深拷贝。
  13. * concat、slice、Array.from(),数组结构 一维数组
  14. * Object.assign、对象解构
  15. */
  16. // var arr1 = [1, 2, 3, 4];
  17. // var arr2 = [...arr1];
  18. // var arr2 = Array.from(arr1);
  19. // var arr2 = arr1.slice();
  20. // var arr2 = arr1.concat();
  21. // arr2[0] = 12;
  22. // console.log(arr1, "arr1");
  23. // console.log(arr2, "arr2");
  24. var obj1 = {
  25. name: "xhs",
  26. age: 20,
  27. address: function () {
  28. console.log("哈尔滨");
  29. },
  30. };
  31. // var obj2 = Object.assign({},obj1);
  32. var obj2 = {...obj1};
  33. obj2.name = 'xhm';
  34. console.log(obj1,'obj1');
  35. console.log(obj2,'obj2');
  36. </script>
  37. </body>
  38. </html>