2017-02-10 1 views
2

Mithilfe der ES6-Klassensyntax ist es möglich, eine neue Instanz der aktuellen Klasse aus dem übergeordneten Objekt zu erstellen. Zum Beispiel:ES6-Klassen: Ist es möglich, auf den Konstruktor einer Kindklasse vom Elternknoten zuzugreifen?

class Base { 
    withFoo() { 
     return new self({ foo: true }); 
    } 
} 

class Child extends Base {} 

(new Child()).withFoo(); 

Ich suche nach etwas ähnlich wie PHP new self() Syntax.

+1

In JavaScript ist die "Klasse" * der Konstruktor. – 4castle

+0

Was ist der Grund für dieses Verhalten? – Mjh

+0

@Mjh Jede Situation, in der die Basisklasse benutzerdefinierte Konstruktoren enthalten soll (z. B. Factory-Methoden). In meinem Fall brauche ich eine Methode, um unveränderliche Objekte aus der Basisklasse zu bearbeiten. – mkrause

Antwort

5

Sie können über this.constructor auf den Konstruktor der aktuellen Instanz zugreifen.

Verwandte Themen