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

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的指针又续上了?怎么续上的?
可能表述的不太清楚,主要是不太清楚指针是怎么变化的。


繁星coding
浏览 459回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript