1. 程式人生 > >JS之數據_變量_內存v(**V**)v(2)

JS之數據_變量_內存v(**V**)v(2)

基本 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 function
fn (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)