JS之數據_變量_內存v(**V**)v(2)
阿新 • • 發佈:2019-01-29
基本 clas class 內部 垃圾 2個 {} ole 通過
1 <script > 2 //*Q:var a=xxx, a內存中到底保存的是什麽? 3 //*A:xxx是基本數據類型,保存的是這個數據 4 // xxx是對象,保存的是對象的地址值 5 // xxx是一個變量,保存的是xxx的內容(可能是基本數據類型,也可能是地址值) 6 7 var a=3//基本數據類型 8 a=function () {//對象 9 10 } 11 var a=3//變量 12 b=a//這裏傳的是基本數據類型 13 b={} 14 a=b//這裏傳的是地址值 15 16//關於引用變量賦值的問題 17 //2個引用變量指向同一個對象,通過一個變量修改對象內部的數據,另一個變量看到的是修改之後的數據 18 //2個引用變量指向同一個對象,讓其中一個引用變量指向另一個對象,另一個引用對象依然指向前一個對象 19 var obj1={name:‘Tom‘} 20 var obj2=obj1//註意這是將obj1中的內容賦值給obj2,這裏只是內容是地址值 21 obj1.name=‘Jack‘ 22 console.log(obj2.name)//‘Jack‘ 23 obj2.agej=12 24 functionfn (obj) {//形參 25 obj.name=‘Bob‘//這裏修改了對象內部的值 26 } 27 fn.name(obj1)//實參 28 console.log(obj2.name)//Bob 29 /* 30 這裏有三個引用變量指向對象(obj1,obj2,obj) 31 */ 32 33 34 var a={age:12} 35 b=a 36 a={name:‘Tom‘} 37 console.log(b.age,)//這裏面只有age屬性 38 a={name:‘Tom‘,age:13} 39 console.log(b.age,a.name,a.age)//12 Tom 13 40 b.age=14 41 console.log(b.age,a.name,a.age)//14 Tom 13 42 //2個引用變量指向同一個對象,讓其中一個引用變量指向另一個對象,另一個引用對象依然指向前一個對象 43 function fn2 (obj) {//這個obj指向13 44 obj={age:15}//註意這裏是等於是個新的對象,在這裏斷了obj=15,這裏成為垃圾對象,這裏修改了obj中的地址值 45 } 46 fn2(a) 47 console.log(a.age)//13 48 49 </script>
JS之數據_變量_內存v(**V**)v(2)