/** * 關於變量引用賦值的問題 */ // 問題1,2個引用變量指向同一個對象,其中一個變量修改對象內部的數據,其它全部的變量都會修改; // 問題2以下: var a = { name: "111" }; var b = a; a = { age: 13 }; console.log(b, a); function fn1(obj) { obj = { age: 18 }; } // 1:實參a先賦值給obj,此時a變量內存中的值賦給了形參obj; // 2:obj和a中內存中保存的都是同一個對象的地址值; // 3:而後在函數體內部,obj又從新指向了一個新的對象; // 4:obj和a基本沒有關係; // 函數執行完,obj變成垃圾對象,局部的變量被回收; fn1(a); console.log(a);