var a = {name:"1"}function fn(obj){
obj.name = "2";
obj = {name:"3"};
}
fn(a);
a.name // "2"为什么输出是2
2 回答

Cats萌萌
TA贡献1805条经验 获得超9个赞
这里涉及到arguments
,在对obj
赋值之前,obj
也就是
arguments[0]
一直都是对a
的引用,赋值操作断开了这个引用链,为obj
重新指定了一个引用即一个新的对象{name:'3'}
- 2 回答
- 0 关注
- 276 浏览
添加回答
举报
0/150
提交
取消