1. ホーム
  2. javascript

[解決済み] JavaScriptのプロトタイプを使ったメソッド呼び出し

2022-06-29 02:10:51

質問

JavaScriptでプロトタイプメソッドがオーバーライドされている場合、ベースメソッドを呼び出すことは可能でしょうか?

MyClass = function(name){
    this.name = name;
    this.do = function() {
        //do somthing 
    }
};

MyClass.prototype.do = function() {  
    if (this.name === 'something') {
        //do something new
    } else {
        //CALL BASE METHOD
    }
};

どのように解決するのですか?

具体的に何をしようとしているのか理解できませんでしたが、通常、オブジェクト固有の振る舞いの実装は、このような流れで行われます。

function MyClass(name) {
    this.name = name;
}

MyClass.prototype.doStuff = function() {
    // generic behaviour
}

var myObj = new MyClass('foo');

var myObjSpecial = new MyClass('bar');
myObjSpecial.doStuff = function() {
    // do specialised stuff
    // how to call the generic implementation:
    MyClass.prototype.doStuff.call(this /*, args...*/);
}