对象引用的问题

var obj={a:1}
function a(obj) {
    obj={}
    obj.a=2
}
a(obj)

以上代码对obj执行函数a后,obj.a依旧等于1,为什么?

阅读 1.5k
2 个回答
var obj={a:1}
function a(obj) { // 形参
    obj={} // 重置形参
    obj.a=2
}
a(obj)

你重置的是 obj 的引用, 外面的 obj 还是指向原来的地址

你在外部打印的obj 他肯定会访问window.obj;

推荐问题