Dynamische Delegierungsvererbung

8

Nehmen wir an, ich habe die Konstruktorfunktionen Foo , Bar und Qux . Wie kann ich ein neues Objekt mit einer Delegierungskette (mit diesen Konstruktoren) erstellen, die ich dynamisch dynamisch auswähle?

Ein Objekt hätte beispielsweise die Delegationskette Foo - & gt; Bar .
Ein anderes Objekt hätte die Kette Foo - & gt; Qux .

%Vor%

Ein Objekt fooBar könnte foo() und bar() aufrufen. Ein anderes Objekt fooQux könnte foo() und qux() aufrufen. Etc.

    
Matthew 19.09.2016, 14:37
quelle

2 Antworten

6

Sie können diese Konstruktoren als Mixins verwenden:

%Vor%

Aber vielleicht möchten Sie sie als Dekoratoren schreiben, vielleicht sogar das modifizierte Objekt, nicht als Konstruktoren, weil Sie ihre Prototypen ohnehin nicht verwenden können. Ein praktischeres Muster wäre also

%Vor%

, damit Sie sie wie

verwenden können %Vor%     
Bergi 19.09.2016, 14:47
quelle
0

Wie gesagt, nicht sicher, aber ich denke, Sie können instanceof ausprobieren.

Idee ist, haben eine Wrapper-Funktion, die auf Konstruktor überprüft und notwendige Funktion aufrufen wird. Eine Alternative könnte dieselbe Funktion in allen Klassenfunktionen haben. Sie müssen also nur object.functionName()

aufrufen

Sample Fiddle

%Vor%
    
Rajesh 19.09.2016 15:12
quelle

Tags und Links