老师,有个问题

来源:3-6 编程练习

生南国

2020-10-21 15:54:47

# 具体遇到的问题
这是我根据一个问答的老师给出的思路照着写的,前面的我都能理解。

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

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

<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回答

好帮手慕言

2020-10-21

同学你好,访问对象的属性时,默认会调用get方法;修改属性值时,默认调用set方法。p.age是设置age属性,就会调用set方法。老师在课程中有过讲解,可以再去回顾下,链接:https://class.imooc.com/lesson/818#mid=22068

0

0 学习 · 10739 问题

查看课程

相似问题