为了账号安全,请及时绑定邮箱和手机立即绑定

es6 class,getter方法无法调用

es6 class,getter方法无法调用

绝地无双 2019-03-14 18:15:30
代码如下,在学习es6的class使用,但在调用getter方法时,出错console.log(c.radius());//getter方法调用              ^TypeError: c.radius is not a function那要如何使用那?大家都是怎么用的那?class Circle {    constructor(radius) {        this._radius = radius;        Circle.circlesMade++;    };    static draw(circle, canvas) {        // Canvas绘制代码    };    static get circlesMade() {        return !this._count ? 0 : this._count;    };    static set circlesMade(val) {        this._count = val;    };    area() {        return Math.pow(this.radius, 2) * Math.PI;    };    get radius() {        return this._radius;    };    set radius(radius) {        if (!Number.isInteger(radius))            throw new Error("圆的半径必须为整数。");        this._radius = radius;    };}let c=new Circle(5);//实例化对象,默认使用构造函数Circle.draw(c,6);//类方法调用console.log(c.radius());//getter方法调用console.log(c.area());//对象方法调用
查看完整描述

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

直接c.radius就可以了啊,后面不用()


查看完整回答
反对 回复 2019-03-25
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

这里明显是题主你没理解 'getter/setter' 呀。这个东西就是要隐藏变量的真实身份,以自身取而代之,所以调用的时候不需要用 () 执行,只要访问即可。


查看完整回答
反对 回复 2019-03-25
?
红颜莎娜

TA贡献1842条经验 获得超13个赞

直接c.radius就行,它是一个getter属性


查看完整回答
反对 回复 2019-03-25
  • 3 回答
  • 0 关注
  • 823 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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