es6 class,getter方法无法调用

代码如下,在学习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());//对象方法调用


绝地无双
浏览 824回答 3
3回答

慕神8447489

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

眼眸繁星

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

红颜莎娜

直接c.radius就行,它是一个getter属性
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript