为了账号安全,请及时绑定邮箱和手机立即绑定

JS函数参数传递的疑问,引用类型指针是怎么变化的?

JS函数参数传递的疑问,引用类型指针是怎么变化的?

繁星coding 2018-11-13 20:04:37
function setName(obj) {   obj.name = 'Nicholas';   obj = new Object();    obj.name = "Greg";  console.log(obj.name); // "Greg"}  var person = new Object(); setName(person); alert(person.name)setName这个函数理解起来有点障碍:person这个对象作为参数传入setName函数,局部参数obj,按照书本的说法按值传递,那么这里的值应该是“指针”,所以,obj复制了一份指向person的指针,obj存放的指针指向的也是person。接着,又new实例化一个对象,这个对象指针保存在了参数obj中,所以这个时候obj指向了一个新的对象,指向person也就断开了?然后,后面思路就混乱了,因为obj这只是局部参数,obj.name输出的是Greg。最后.alert又弹出Nicholas,说明,前面obj断开person的指针又续上了?怎么续上的?可能表述的不太清楚,主要是不太清楚指针是怎么变化的。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 457 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信