JavaScript unterstützt keine Klassen im herkömmlichen Sinne wie andere objektorientierte Sprachen wie Java oder C. Es bietet jedoch einen einzigartigen Mechanismus zum Definieren von Konstruktoren für Objekte mithilfe von Prototypen.
Prototypen verwenden:
JavaScript-Objekte verfügen über eine Prototypeigenschaft, die zum Hinzufügen von Methoden und verwendet werden kann Eigenschaften für alle Instanzen dieses Objekts. Um einen Konstruktor mithilfe von Prototypen zu definieren, erstellen wir eine Funktion und weisen sie dem Prototyp des Objekts zu:
<code class="javascript">function Box(color) { // Constructor this.color = color; } Box.prototype.getColor = function() { return this.color; };</code>
Dieser Konstruktor nimmt ein Farbargument und speichert es in der Farbeigenschaft des Objekts. Außerdem wird dem Prototyp eine getColor-Methode hinzugefügt, auf die alle Instanzen des Box-Objekts zugreifen können.
Private Eigenschaften ausblenden:
Während JavaScript nicht „true“ hat Bei privaten Mitgliedern können wir eine Technik verwenden, um private Eigenschaften zu simulieren:
<code class="javascript">function Box(col) { var color = col; this.getColor = function() { return color; }; }</code>
In diesem Beispiel wird die Farbvariable als lokale Variable innerhalb des Konstruktors deklariert. Es kann nicht direkt von außerhalb des Konstruktors darauf zugegriffen werden. Wir stellen jedoch eine getColor-Methode bereit, die den Wert der Farbvariablen zurückgibt.
Verwendung:
Um eine Instanz des Box-Objekts zu erstellen, verwenden wir das Schlüsselwort new gefolgt vom Namen des Konstruktors:
<code class="javascript">var blueBox = new Box("blue"); alert(blueBox.getColor()); // will alert blue var greenBox = new Box("green"); alert(greenBox.getColor()); // will alert green</code>
Durch die Verwendung von Prototypen oder die Simulation privater Eigenschaften ermöglicht uns JavaScript, Konstruktoren für Objekte zu definieren und in gewissem Umfang die Kapselung zu simulieren.
Das obige ist der detaillierte Inhalt vonWie definieren Sie Konstruktoren für JavaScript-Objekte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!