javascript - 编写类并实现功能

标签 javascript geometry

我遇到问题或者我没明白。 我需要编写 Circle 类并实现以下功能。

1.属性:中心坐标和半径。

2.定义带有参数的构造函数来初始化对象。

3.Define方法,返回长度f周长(L= 2 * π * R)。

4.定义方法,返回当前对象的副本。

5.定义将对象当前状态转换为字符串并返回结果的方法。

6.定义给定半径的圆周静态方法。

这是我的决定,但我陷入困境。

function circle(radius)
{
    this.radius = radius;
    this.area = function () 
    {
        return Math.PI * this.radius * this.radius;
    };
    this.perimeter = function ()
    {
        return 2*Math.PI*this.radius;
    };
}
var c = new circle(3);
console.log('Area =', c.area().toFixed(2));
console.log('perimeter =', c.perimeter().toFixed(2));

最佳答案

如果您希望使用现代 JavaScript (ECMAScript) 实现相同的功能。这是下面的方法

class circle{
    constructor( radius ){
        this.radius = radius;
    }
    
    get area(){
        return Math.PI * this.radius * this.radius;
    }
    
    get perimeter(){
        return 2*Math.PI*this.radius;
    }
}

var c = new circle(3);
console.log('Area =', c.area.toFixed(2));
console.log('perimeter =', c.perimeter.toFixed(2));

如果你想将面积和周长作为方法而不仅仅是 getter 方法。那么你应该在方法名称之前删除 get 前缀。这意味着这些方法是 setter/getter

关于javascript - 编写类并实现功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58205403/

相关文章:

algorithm - 避免线条交叉

javascript - 增加 SVG 圆的大小

Qt/PyQt : QGraphicsItem vs. QGraphicsWidget 几何、位置、鼠标交互

javascript - 在javascript中使用正则表达式删除html标签

javascript - 如何从使用 Google Charts 生成的组合图表中删除网格线

javascript - 为什么我的按钮没有动画?

opencv - 如何纠正检测到的椭圆

algorithm - 中点圆算法的速度提升

javascript - 使用原生 JavaScript 倒计时

javascript - Jquery添加重复的数组键