JavaScript引用变量赋值的问题

问题遇到的现象和发生背景

引用变量的赋值没搞懂

问题相关代码,请勿粘贴截图
var a = {name:'Lilly'};
function fn (obj){
  obj = {name:'Tom'};
}
fn(a);
console.log(a.name);
运行结果及报错内容

为什么运行结果是Lilly不是Tom

我的解答思路和尝试过的方法

调用函数时,将a赋值给obj,还是将obj换成a

我想要达到的结果

obj和a都是指向数据{name:'Lilly'}的指针。在函数函数中给obj重新赋值时是将obj指向了另外一块数据,但是并不会影响a指向原来的{name:'Lilly'}数据。

如果是obj.name='xxxx',由于a是对象,所以obj是地址引用,会修改{name:'Lilly'}这个地址中的数据

你这里是给obj重新赋值了,方法里改成obj.name = 'Tom'才会修改

因为函数的参数obj是个形参,你把a穿进去只是传递了值,修改obj参数的值并不能影响a

函数的参数是传值,不是传地址。