2017-02-04 2 views
0

(Ich bin ein bisschen neu zu Javascript und das gesamten Prototyp/Vererbungskonzept, so dass meine Entschuldigung, wenn dies eine dumme Frage ist)Kann ein Modulmusterobjekt von einem Konstruktormusterobjekt erben?

In meiner Code-Basis, habe ich ein Mischmasch Verräterische-Modul-Pattern-Typen bekommt von Objekten, und dann habe ich auch Objekte, die das Konstruktor-Muster verwenden (wo Instanzen neu erstellt werden).

Ich habe auch einen Block von Code (in der Art des Konstruktor-Typ geschrieben), der EventEmitter-Funktionalität bietet. Ist es möglich, diesen Code als Basisklasse für Constructor-Pattern-Objekte und Revealing-Module-Pattern-Objekte zu verwenden? Macht es Sinn, dies zu tun?

+0

Ihre Frage ist ziemlich vage. Es ist tatsächlich immer möglich, Code in JavaScript wiederzuverwenden, aber die Mittel dazu variieren je nach Ihrer Situation. Es würde helfen, wenn Sie ein konkretes Beispiel für etwas geben würden, was Sie gerne tun würden. – lleaff

Antwort

1

Zuerst folgen nur "Konstruktor-Muster" -Objekte einer traditionellen Form der Vererbung, wobei eine Klasse die andere erweitert und Sie Instanzen von Objekten erstellen.

„Revealing-Modul-Muster“ ist nur ein Weg, um Daten zur Verkapselung und das Aussetzen nur Teile davon, gibt es kein Konzept von Instanzen und Klassen, wenn Sie dieses Muster verwenden.
Wenn Sie Code aus solch einem "einfachen alten Objekt" wiederverwenden möchten, können Sie "prototypal inheritance" verwenden, was bedeutet, dass Ihr untergeordnetes Objekt jedes Mal auf das übergeordnete Objekt verweist, wenn es nach einem Element gefragt wird, das es nicht hat.

In beiden Fällen verwenden Sie Object.create, um Objekte zu erstellen, die ein anderes Objekt für den Prototyp haben, überprüfen Sie die examples at MDN.

Beachten Sie auch, dass ES2015 aus und macht klassischer OOP leichter mit schönen native syntactic sugar in Form von class und extends.

Verwandte Themen