在尝试覆盖某些方法时,我在JS中遇到了一些问题。我有一个形状类,它是所有类的超类。 Shape有自己的getArea()函数。但它空洞。我的扩展类是Triangle,Rectangle,Square等,它们有自己的getArea()函数。但我无法使用他们的方法,因为他们总是称他们的超类的getArea()函数。
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;
}
}
.
.
.
.
getArea:function()
{
}
.
.
.
.
.
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。
由于