1
자바 스크립트에서 OOP를 처음 사용합니다. 메소드를 오버라이드하고 싶을 때 제대로 이해하지 못합니다. 나는 아래에서 나의 문제에 대한 모범을 보였다. 또한자바 스크립트 메소드 오버라이드
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);'. –