请问默认值是设置在constructor 中吗,还是像我写的这样就行
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
let year = prompt("请输入年份");
// 补充代码
class people{
constructor(){
}
get age(){
return this._age;
}
set age(val){
let currentYear = new Date().getFullYear();
if(val>=1000&&val<=currentYear){
this._age=currentYear-val;
}else{
this._age=18;
}
}
}
let a = new people();
a.age = year;
console.log(a.age);
</script>
</body>
</html>
正在回答
同学你好 ,可以在get和set方法中测试输出内容,当你给age赋值时,就会触发set方法,读取age时,就会触发get方法。示例:
结果如下:set和get方法是有作用的。
同学可以结合示例测试一下。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
还有一个疑问,get和set的作用是什么呢,像这样去掉不也能得出结果吗
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
let year = prompt("请输入年份");
// 补充代码
class people{
constructor(){
}
// get age(){
// return this._age;
// }
// set age(val){
// let currentYear = new Date().getFullYear();
// if(val>=1000&&val<=currentYear){
// this._age=currentYear-val;
// }else{
// this._age=18;
// }
// }
}
let a = new people();
a.age = 2020-year;
console.log(a.age);
</script>
</body>
</html>
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星