get/set方法
来源:3-6 编程练习
蛋挞狂魔
2021-01-28 00:37:19
【方法名如果和属性名相同的话,就会陷入递归,不断地调用get/set方法而导致报错】
这句话不是很理解,老师可以详细解释一下吗
1回答
同学你好,解答如下:
如下代码中的console语句,是打印obj.name。obj.name是获取name属性,因此会触发obj内的get方法。在get方法内,会返回this.name,由于this指向的是obj,所以this.name就是obj.name,即还是获取obj的name属性,因此还会触发get方法,这样就陷入了死循环出不来:

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

祝学习愉快!
相似问题