JavaScript OOP中的重写方法

时间:2017-08-03 06:50:08

标签: javascript oop

在尝试覆盖某些方法时,我在JS中遇到了一些问题。我有一个形状类,它是所有类的超类。 Shape有自己的getArea()函数。但它空洞。我的扩展类是Triangle,Rectangle,Square等,它们有自己的getArea()函数。但我无法使用他们的方法,因为他们总是称他们的超类的getArea()函数。

TRIANLGE.js

function Triangle(p1,p2,p3)
{
    this.points = [p1, p2, p3];
    getArea = function ()
    {
        var s = this.getPerimeter() / 2;
        var area = Math.sqrt(s * (s - new Line(p1, p2).length) * (s - new Line(p2, p3).length) * (s - new Line(p3, p1).length));
        return area;
    }
}

SHAPE.js

.
.
.
.
getArea:function()
 {

 }
.
.
.

MAIN.js

.
.
Triangle.prototype = Shape.prototype;
Triangle.prototype.constructor = Triangle;
var triangle = new Triangle();
triangle.points = points;

triangle.init();
triangle.draw();
console.log(triangle.getPerimeter());
console.log(triangle.getArea());
.
.

当我尝试使用console.log getArea时,由于此问题,它返回none。

由于

0 个答案:

没有答案