05.数据_变量_内存-关于引用变量赋值问题.html 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. <!--
  11. 关于引用变量赋值问题
  12. *n个引用变量指向同一个对象,通过一个变量修改对象内部数据,
  13. 其他所有变量看到的是修改之后的数据(例1-3)
  14. *2个引用变量指向同一个对象,让其中一个引用变量指向另一个对象,
  15. 另一个引用变量依然指向前一个对象
  16. -->
  17. <script>
  18. //例1
  19. // var obj1 = { name: '孙悟空' };
  20. // var obj2 = obj1;
  21. // obj1.name = '二师兄';
  22. // console.log(obj2.name); //二师兄
  23. //例2
  24. // var obj1 = { name: '孙悟空' };
  25. // var obj2 = obj1;
  26. // obj2.age = 18;
  27. // console.log(obj1.age); //18
  28. //例3
  29. // var obj1 = { name: '孙悟空' };
  30. // var obj2 = obj1;
  31. // function fn(obj){
  32. // obj.name = '唐僧';
  33. // };
  34. // fn(obj1);
  35. // console.log(obj2.name); //唐僧
  36. //例4
  37. // var a = { age: 22 };
  38. // var b = a;
  39. // a = { name: '大师兄', age: 32 };
  40. // console.log(b.age, a.name, a.age);//22,'大师兄',32
  41. //例5
  42. // var a = { age: 22 };
  43. // var b = a;
  44. // a = { name: '大师兄', age: 32 };
  45. // b.age = 24;
  46. // console.log(b.age, a.name, a.age);//24,'大师兄',32
  47. //例6
  48. // var a = { age: 22 };
  49. // var b = a;
  50. // a = { name: '大师兄', age: 32 };
  51. // function fn2(obj) {
  52. // obj = { age: 15 }
  53. // };
  54. // fn2(a);
  55. // console.log(a.age);//32
  56. </script>
  57. </body>
  58. </html>