请问这个this.age = 18;如何把set里else的语句替换掉?

请问这个this.age = 18;如何把set里else的语句替换掉?

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
<script type="text/javascript">

    // 补充代码

    class Age{
        constructor(birthyear,age){
            this._birthyear =birthyear;
            this._age = age;
    //        this.age = 18;
        }
        get age(){
            return `今年的年龄是${this._age}`;
        }
        set age(birthyear){
            if(birthyear.length === 4){
                this._age = new Date().getFullYear() - birthyear;
            }else{
                this._age = 18;
            }

        }
    }
    var XMage = new Age();
    let birthyear = prompt("请输入出生年份");
    XMage.age = birthyear;
    document.write(XMage.age);
</script>
</body>
</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你好同学,你描述的方式是不可以的, this.age = 18;是在constructor中为定义一个属性age并赋值为18,this._age = age;中的age与这个this.age并不是同一个age。所以你直接在 this._age 上面赋值为18即可,如下:

http://img1.sycdn.imooc.com//climg/5cd6adee0001f2ef07170366.jpg

祝学习愉快 ,望采纳。

好帮手慕夭夭 2019-05-11 18:51:28

你好同学,代码已经实现效果了。不太理解你的问题,请详细描述一下具体想要实现什么功能。以便老师准确的为你解答。

祝学习愉快 !

  • 提问者 望月空太 #1
    set判断里不使用else语句 而是在constructor里使用默认值 constructor(birthyear,age){ this._birthyear =birthyear; this._age = age; this.age = 18; }; 这样写不可以吗qaq
    2019-05-11 18:54:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师