2017-06-23 5 views
0

インスタンスのメソッドの継承を宣言する方法はありますか?インスタンスメソッドの継承

//SOME CLASS 
class SomeClass{ 
    someMethod{ 
     //SOMETHING HAPPENS 
    } 
} 
function myComponent(){ 
    this.subcomponents={ 
     popup:function(){ 
      //SOMETHING HAPPENS 
     } 
    } 
    this.init=()=>{ 
     //NEW INSTANCE OF SUBCOMPONENT POPUP 
     var popup = new this.subcomponents.popup(); 
     //DESIRED RESULT WOULD BE ABLE TO CALL 
     popup.someMethod(); 
    } 
} 
//myComponent inherits someMethod() 
myComponent.prototype = new SomeClass(); 
//IS THERE ANYWAY TO ASSIGN INHERITANCE TO SUBMETHODS OF AN INSTANCE 
myComponent.subcomponents.popup.prototype = new SomeClass(); 

所望の出力はので、私はpopup.someMethod()を呼び出すことができるだろうSomeClassの継承と方法popupの新しいインスタンスを持っているだろう。

質問:どのように私はpopup方法、SomeClassの継承を割り当てることができますので、私はpopup.someMethod()を呼ぶだろうか?

答えて

0

私が正しく理解していれば、何とかSomeClassのsomeMethod関数を使い、それをポップアップに適用したいと思っています。これを行うためには、プロトタイプチェーンと継承を混乱させる必要はありません。

すなわち

SomeClass.prototype.someMethod.call(popup, arguments) 

これがポップアップし、あなたは私がすべてであることやろうとしていないよ

+0

提供何の引数でそれを実行するためのsomeMethodを取る、と「この」の値を変更します。私は実際にあなたがes6を使っているので、 'popup.someMethod()'または 'popup.whatevermethodfrominheritedclass()' –

+0

をしようとしています。なぜSomeClassを拡張する別のクラスをポップアップしてみませんか? – derp

+0

私はES5またはES6と全く同じことを意味します...しかし、現在私が知っている唯一の方法は、別々のクラスを作ることです。クラスが親クラスに比べて非常に小さく、親クラスのサブコンポーネントまたはサブクラスとして実際に管理される必要があるので、私が行う方法を探していることが多い。 –