9_深克隆2.html 852 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <script>
  11. function deepClone(data){
  12. var tmp = {}
  13. // if(Array.isArray(data)){
  14. // tmp = []
  15. // } else {
  16. // tmp = {}
  17. // }
  18. if(typeof data == 'object'){
  19. tmp = Array.isArray(data)? []:{}
  20. for(key in data){
  21. if(typeof data == 'object'){
  22. tmp[key] = deepClone(data[key])
  23. } else {
  24. tmp[key] = data[key]
  25. }
  26. }
  27. } else {
  28. tmp = data
  29. }
  30. return tmp
  31. }
  32. var a = ['lisi',18]
  33. var b = deepClone(a)
  34. b[0] = 'zs'
  35. console.log(b)
  36. console.log(a)
  37. </script>
  38. </body>
  39. </html>