get/set方法

来源:3-6 编程练习

蛋挞狂魔

2021-01-28 00:37:19

【方法名如果和属性名相同的话,就会陷入递归,不断地调用get/set方法而导致报错】

这句话不是很理解,老师可以详细解释一下吗

写回答

1回答

好帮手慕久久

2021-01-28

同学你好,解答如下:

如下代码中的console语句,是打印obj.name。obj.name是获取name属性,因此会触发obj内的get方法。在get方法内,会返回this.name,由于this指向的是obj,所以this.name就是obj.name,即还是获取obj的name属性,因此还会触发get方法,这样就陷入了死循环出不来:

http://img.mukewang.com/climg/60125505096e400d10410362.jpg

因此需要将方法名和属性名设置不同:

http://img.mukewang.com/climg/6012557309d85e0b05950363.jpg

祝学习愉快!

0

0 学习 · 10739 问题

查看课程