2016-07-29 16 views
1

Wie kann ich unter den folgenden Codes auf die bar() aus der Klasse Parent zugreifen?ES6-Zugangsfunktionen von der Kindklasse

class Parent{ 
    constructor(){ 

    } 

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

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

    bar(){ 

    } 
} 
+1

'Parent' Klasse nicht weiß, irgendetwas über 'Child', das es ausdehnt. –

+0

@DmitriPavlutin aber das ist ... traurig. Egal danke :) – CENT1PEDE

+0

und es ist erwähnenswert, dass Kind alles über Eltern kennt –

Antwort

0

Sie tun es genau zugreifen, wie Sie taten, aber es tatsächlich auf this definiert werden Sie eine Child Instanz erstellen haben kein Parent ein:

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

Nun ja, das macht Sinn, ich denke meine Frage ist falsch, sorry. Der genaue Anwendungsfall, den ich brauche, verwende ich in der 'Eltern' Klasse. Ich habe die Frage erneut überarbeitet. – CENT1PEDE

+0

@TheGreenFoxx: Wenn Sie "Bar" in "Parent" -Instanzen benötigen, sollten Sie die Methode in der Klasse "Parent" deklarieren. Während es möglich ist, direkt auf "Child.prototype.bar" zu verweisen, würde seine Verwendung in "Parent" gegen alle guten Praktiken und Designprinzipien verstoßen. – Bergi