3-10参数传递

来源:3-10 参数传递和类型检测

慕粉1110144175

2019-02-21 17:30:16

http://img.mukewang.com/climg/5c6e6ebe0001adbe05020302.jpg

不太明白这里,参数传递,是把person的值赋给obj了,为什么在方法setName(obj)里面还会有个obj,在堆内存中存在还给分配了堆内存0bj={}(方法内第三行代码)?为什么不能理解为这个是给person分配的呢?

写回答

1回答

好帮手慕星星

2019-02-21

你好,

对象作为参数传递,相当于把person 的值赋值给了方法中的形参obj,可以理解为两个变量指向的是同一个地址,但是在方法中,给obj分配了一个新的地址,虽然是空对象,但是两个变量指向的地址也是不同的。

所以最后输出person.name的时候结果是改变指向地址之前设置的name值‘xm’。

可以再测试理解下,祝学习愉快!

0

0 学习 · 4826 问题

查看课程