2016-04-21 10 views
-1

私はJavascriptの専門家ではありません。私は以下のTypescriptコードの問題がそこから始まることを意識しています。抽象クラスを実装しているクラスで未定義

window.onload =() => { var i = new IPropIndex(new IPropService()); }; 

interface IIDocService<T> { 
    getSingle(): IPropDoc; 
} 

class IPropService implements IIDocService<T> { 
    getSingle(): IPropDoc { return new IPropDoc(); } 
} 

abstract class IDocIndex<T> { 
    constructor(public _IDocType: string, public _IIDocService: IIDocService<T>) { 
     console.log(this._IDocType); //NOT UNDEFINED 
     this.methodB(); 
    } 

    public abstract methodA(); 

    public methodB() { 
     this.methodA(this.methodC); //**UNDEFINED** 
    } 

    public methodC() { 
     console.log(this._IDocType); 
    } 
} 

class IPropIndex extends IDocIndex<IPropDoc> { 
    constructor(public _IPropService: IPropService) { 
     super('iPROP', _IPropService); 
     console.log(this._IPropService); //NOT UNDEFINED 
    } 

    public methodA(callback: any): void { 
     console.log(this._IPropService); //**UNDEFINED** 
     callback(); 
    } 
} 

class IPropDoc { public name: string; } 

私は、コードに署名した未定義の問題がなくても、このソリューションを持つことができる方法:しかし、私は活字体で、私は未定義の問題を抱えていると私は、コードは残りの部分を説明させますが、最後の36時間にここにこだわって!?おかげさまで

+0

はどのように 'methodA'と' methodB'を実行していますか? –

答えて

関連する問題