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

慕丝7291255
TA贡献1859条经验 获得超6个赞
楼上说的还不够详细。
这里涉及到
arguments
,在对obj
赋值之前,obj
也就是
arguments[0]
一直都是对a
的引用,赋值操作断开了这个引用链,为obj
重新指定了一个引用即一个新的对象{name:'3'}
添加回答
举报
0/150
提交
取消