var a = {name:"a"}
var b = {name:"b"}
function changeObj(obj){
obj = b;
}
changeObj(a)
console.log(a) //{name:"a"}
以上代码中,两个对象a,b ,然后 对 a 进行 函数操作,如果是引用传递的话,就相当于 a=b, console.log(a)的结果应该是{name:"b"}。但是结果并非如此。
比较简单理解是,上面代码中 a 和 函数中obj 都是指向同一个实例{name:"a"},但是 obj 是 a 的引用副本。函数中只是改了a 引用副本 obj的指向,并没有改变a的指向。所以a还是指向{name:"a"}