2016-07-29 100 views
1

給定下面的代碼,如何訪問Parent類中的bar()來自子類的ES6訪問函數

class Parent{ 
    constructor(){ 

    } 

    foo(){ 
     this.bar() // not defined 
    } 
} 

class Child extends Parent{ 
    constructor(){ 
     super(); 
    } 

    bar(){ 

    } 
} 
+1

'Parent'類不知道任何關於延伸它的「孩子」。 –

+0

@DmitriPavlutin但這是...悲傷。反正謝謝:) – CENT1PEDE

+0

值得一提的是,孩子知道所有關於父母 –

回答

0

你做你確實做到了訪問,但爲了能在this實際定義,你必須創建一個Child實例不是Parent之一:

var c = new Child(); 
c.bar() // works 
c.foo() // calls c.bar() as well 
+0

嗯,這是有道理的,我認爲我的問題是錯誤的,對不起。我需要的確切用例是在'Parent'類中使用它。我再次更新了這個問題。 – CENT1PEDE

+0

@TheGreenFoxx:如果你在'Parent'實例中需要'bar',那麼你應該在'Parent'類中聲明該方法。雖然可以直接引用'Child.prototype.bar',但它在'Parent'中的用法將違背所有良好實踐和設計原則。 – Bergi