アイデアは、継承されたクラスRectangleにShapeからcalculateSurfaceメソッドを実装し、Rectangleクラスに渡されたパラメーターを使用してサーフェスを計算することです。
function Shape (w,h){
this.h = h;
this.w = w;
this.calculateSurface = function (){
return this.w*this.h;
};
}
function Rectangle (w,h){
Shape.apply(this, arguments);
this.w = w;
this.h = h;
this.calcSurface = function(){
return Shape.calculateSurface(this.w, this.h);
};
}
Rectangle.prototype = new Shape();
Rectangle.prototype.constructor = Rectangle;
var rec = new Rectangle(4,4);
console.log(rec.calcSurface());
私が得るエラーは次のとおりです。
Uncaught TypeError: Object function Shape(w,h){
this.h = h;
this.w = w;
this.calculateSurface = function (){
return this.w*this.h;
};
} has no method 'calculateSurface'