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
.
Ein Objekt fooBar
könnte foo()
und bar()
aufrufen. Ein anderes Objekt fooQux
könnte foo()
und qux()
aufrufen. Etc.
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% 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()
Tags und Links javascript