var a = {name:"1"}function fn(obj){
obj.name = "2";
obj = {name:"3"};
}
fn(a);
a.name // "2"
1 回答
神不在的星期二
TA贡献1963条经验 获得超6个赞
这里涉及到arguments
,在对obj
赋值之前,obj
也就是
arguments[0]
一直都是对a
的引用,赋值操作断开了这个引用链,为obj
重新指定了一个引用即一个新的对象{name:'3'}
添加回答
举报
0/150
提交
取消