函数中传参修改对象的值,内存如何运作
在这里插入代码片
``` var a = {age:12};
var b = a ;
a = {name : 'Bob', age : 13};
b.age = 14;
console.log(b.age , a.name , a.age);
function fn(obj){
obj = {age : 15}
};
fn(a);
// a中的内存内容是{name : 'Bob', age : 13}对象的地址值
// fn函数传进a后,obj形参的内存内容变为a的内存内容,即为{name : 'Bob', age : 13}的地址值
// 所以a和obj共同指向堆中的{name : 'Bob', age : 13}对象
// 当obj = {age : 15}执行后,obj指向{age : 15},内存内容改变了
// 所以a的内存内容不受影响
console.log(a.age);//输出13