私はJavaScriptのOOPを初めて使っています。私はメソッドをオーバーライドしたいときにそれを正しく取得できません。私は下の私の問題の例を作った。またhttp://jsfiddle.net/sRyQA/JavaScriptメソッドのオーバーライド
function myGeometryObject(r, x, y){
this.r = r;
this.x = x;
this.y = y;
var OBJ = this;
this.returnArea = function(){
return 'wrong override';
}
}
function myRectangle(r, x, y){
myGeometryObject.call(this, r, x, y);
}
myRectangle.prototype = new myGeometryObject();
myRectangle.prototype.returnArea = function(){
return 'right override';//I want JS to use this method
}
var rectangle = new myRectangle(0, 5, 5);
alert(rectangle.returnArea());
を別の方法を適用した後に 'myRectangle'コンストラクタ(方法を上書きすることです'myGeometryObject'コンストラクタへの引数)。 http://jsfiddle.net/sRyQA/2/ – katspaugh
@Felix KLing MyRectangle.prototype.constructor = MyRectangleとは何ですか? – einstein
@ Woho87:プロトタイプの 'constructor'プロパティを' MyRectangle'に設定します。このプロパティは、プロトタイプがプロトタイプの関数であることを常に指し示します。試してみましょう: 'function Foo(){}; console.dir(Foo.protoype); '。 –