Es gibt viele Möglichkeiten, Klassen und Objekte mit Javascript zu erstellen: 1. Ursprüngliche Erstellungsmethode, 2. Factory-Methodenmuster, 3. Konstruktionsmethode Muster, 4. Dynamische Prototypenmethode. Schauen wir uns Beispiele anhand von Beispielen genauer an > Die ursprüngliche Erstellungsmethode ist für Leute, die mit
Objektorientiertvertraut sind, schwer zu akzeptieren. Sie haben immer das Gefühl, dass die Kapselung von
Attributen und Methodennicht sehr eng ist basiert auf der Methode „Objektname“ + „.“, was darauf hinweist, dass die Eigenschaften und Methoden, die dem Objektnamen folgen, Eigentum dieses Objekts (z. B. Person) sind. Sie können weiterhin Methoden hinzufügen Eigenschaften fügen beispielsweise das Altersattribut hinzu: person.age= 23; Diese Erstellungsmethode führt dazu, dass sich Personen, die mit der Java-
Programmierung<script type="text/javascript"> var person = new Object(); person.name="Amy"; person.sex="Woman"; person.show=function(){ document.write("name is: "+this.name+" ; sex is:"+this.sex); } person.show(); </script>
2. Factory-Methodenmuster: Das Factory-Methodenmuster sieht eher aus wie eine Klasse, die von personFactory gekapselt wird die ursprüngliche Erstellungsmethode und gibt das erstellte Objekt an dieReferenz
Variablezurück. Person kann dann auf das erstellte Objekt verweisen, aber es ist noch nicht perfekt: Jedes Mal, wenn Sie ein Objekt erstellen
und verwenden Sie das Objekt, um die Methode show() aufzurufen. Es wird eine neue Funktion show()<script type="text/javascript"> function personFactory(name,age,sex){ var ob=new Object(); ob.name=name; ob.age=age; ob.sex=sex; ob.show=function(){ document.write(ob.name+" "+ob.age+" "+ob.sex); } return ob; } var person=personFactory("Amy",21,"Woman"); person.show(); </script>
Funktionell gesehen löst der obige Code das Problem der Wiederverwendung von Funktionen, aber die Präsentationsmethode ähnelt nicht der Erstellung eines Objekts, und Leute, die mit Java vertraut sind, fühlen sich immer noch unwohl. Bitte sehen Sie sich den nächsten Schritt an: 3. Konstruktormuster: Die Erstellungsmethode des obigen Codes ist fast dieselbe wie die Erstellungsmethode von Java-Klassen und -Objekten. Die Attribute und Eigenschaften der Klasse werden gekapselt, und dann wird das neue Schlüsselwort verwendet, um ein Objekt zu erstellen und zurückzugeben. Ist dies nicht der Prozess zum Erstellen von Klassen und Objekten in Java, aber er kann auch optimiert werden. Das auf diese Weise erstellte Objekt wird sofort angezeigt, wenn die Show-Methode aufgerufen wird. Können wir eine für alle Objekte gemeinsame Methode erstellen, um eine Show-Funktion unabhängig zu erstellen? Genau wie die Methode static
in Java-Klassen verwenden alle Objekte dieselbe statische Methode, und die Antwort lautet „Ja“. Bitte sehen Sie sich den nächsten Schritt an:<script type="text/javascript"> function show(){ document.write(this.name+" "+this.age+" "+this.sex); } function personFactory(name,age,sex){ var ob=new Object(); ob.name=name; ob.age=age; ob.sex=sex; ob.show=show; return ob; } var person=personFactory("Amy",22,"Woman"); person.show(); </script>
4. Dynamische Prototypenmethode:
Hier wird ein kleiner Trick verwendet, um ein Objekt zu erstellen<script type="text/javascript"> function person(name,age,sex){ this.name=name; this.age=age; this.sex=sex; this.show=function(){ document.write(this.name+" "+this.age+" "+this.sex); document.write("<br>"); } } var per=new person("Amy",22,"Woman"); per.show(); </script>
Die Bedeutung dieses Inhalts ist: Erstellen Sie eine Show-Methode, die zur Klasse Person gehört. Beachten Sie, dass es sich um eine Klassenmethode handelt, die der statischen modifizierten Methode in Java entspricht, und nicht um eine einzelne Methode Auf diese Weise können alle Objekte dieselbe Methode aufrufen, sodass dies nicht erforderlich ist. Wäre es nicht besser, beim Aufrufen von Methoden für verschiedene Objekte eine eigene Show-Funktion zu erstellen, was nicht nur Platz, sondern auch Zeit spart? Lassen Sie mich hier erklären, dass die in der Methode „Klassenname.prototype.property/method“ erstellten Eigenschaften und Methoden den in Java mit Static geänderten Variablen oder Methoden entsprechen. Sie gehören zur gesamten Klasse, nicht zu einem einzelnen Objekt , alle Objekte werden gemeinsam genutzt.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Klassenerstellung und Objekte in Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!