老师,有个问题
来源:3-6 编程练习
生南国
2020-10-21 15:54:47
# 具体遇到的问题
这是我根据一个问答的老师给出的思路照着写的,前面的我都能理解。

# 粘贴全部相关代码,切记添加代码注释(请勿截图)
<script>
class Person {
constructor() {
//设置默认的年龄为18岁
this._age = 18;
}
//设置get方法,返回年龄
get age() {
return this._age;
}
//设置set方法,设置年龄
set age(val) {
let date = new Date(); //获取当前日期对象
let curYear = date.getFullYear(); //获取今年是哪一年
//如果输入的年份不是4位数
if (val.length !== 4) {
this._age = 18; //将年龄设置为18岁
} else if (val < curYear == false) {
this._age = 18; //判断输入的年份是否大于本年份
} else {
this._age = curYear - val; //差值就是年龄
}
}
}
let p = new Person();
let year = prompt("请输入出生年份"); //使用变量接收输入的年份
p.age = year; //该句代码,会执行set方法
document.write(`您今年${p.age}岁`); //获取年龄
</script>
在这里输入代码,可通过选择【代码语言】突出显示
1回答
同学你好,访问对象的属性时,默认会调用get方法;修改属性值时,默认调用set方法。p.age是设置age属性,就会调用set方法。老师在课程中有过讲解,可以再去回顾下,链接:https://class.imooc.com/lesson/818#mid=22068