1. Konstrukteure und Prototypen1. Konstruktor Ein Konstruktor ist eine spezielle Funktion, die hauptsächlich zum Initialisieren eines Objekts verwendet wird, d. h. zum Zuweisen von Anfangswerten zu den Mitgliedsvariablen des Objekts. Er wird immer mit Bei der Verwendung des Konstruktors sind folgende zwei Punkte zu beachten:
Bei der Ausführung von new werden vier Dinge ausgeführt:
Einige Mitglieder können dem Zum Beispiel: Funktion A(uname,Alter){ dies.uname = uname; dieses.Alter = Alter; dies.sagen = function() { console.log(diesen.uname+'hallo'); } } var wh = new A('Wort',18); var xl = new A('Kleiner Bär',18); Im obigen Code sind die hierdurch im Konstruktor hinzugefügten Methoden Beispiel: Erstellen Sie ein statisches Mitglied. A.sex='weiblich'; 2. KonstruktorproblemDie Konstruktormethode ist sehr nützlich, es besteht jedoch das Problem der Speicherverschwendung Wie unten dargestellt: Funktion Student(Alter,Name){ dieses.Alter = Alter; dieser.name = Name; dies.score = Funktion(){ console.log('Die Kinder haben alle gute Noten!'); } } console.dir(Student); var xl = neuer Student(18,'Kleiner Bär'); var wh = neuer Student (17, „Student“); xl.score(); wh.score(); Um festzustellen, ob die Adressen der beiden aufgerufenen Methoden identisch sind, verwenden Sie den folgenden Code. Konsole.log(xl.score === wh.score); Das Druckergebnis ist: Es ist ersichtlich, dass die Adressen der say-Funktion in A nicht dieselben sind, wenn sie zweimal aufgerufen wird, da zwei Speicherplätze geöffnet werden, was zu einer Speicherverschwendung führt. 3. Konstruktor-Prototyp Vom Konstruktor über den Prototyp zugewiesene Funktionen werden von allen Objekten gemeinsam genutzt. JavaScript legt fest, dass jeder Konstruktor eine Erstellen Sie einen Konstruktor wie folgt: Funktion Student(Alter,Name){ dieses.Alter = Alter; dieser.name = Name; dies.score = Funktion(){ console.log('Die Kinder haben alle gute Noten!'); } } console.dir(Student); Drucken Sie alle Methoden im Konstruktor aus, und Sie können Folgendes sehen: Funktion Student(Alter,Name){ dieses.Alter = Alter; dieser.name = Name; } Student.prototype.score = Funktion(){ console.log('Die Kinder haben alle gute Noten!'); } console.dir(Student); var xl = neuer Student(18,'Kleiner Bär'); var wh = neuer Student (17, „Student“); xl.score(); wh.score(); Konsole.log(xl.score === wh.score); Das Druckergebnis ist: Und durch den zweimaligen Aufruf der Funktion wird nur ein Speicherplatz freigegeben, was ebenfalls die Speicherverschwendung reduziert.
4. Objektprototyp __proto__ Jedes Objekt hat eine Eigenschaft Wie unten dargestellt: Funktion Student(Alter,Name){ dieses.Alter = Alter; dieser.name = Name; } Student.prototype.score = Funktion(){ console.log('Die Kinder haben alle gute Noten!'); } // console.dir(Student); var xl = neuer Student(18,'Kleiner Bär'); var wh = neuer Student (17, „Student“); konsole.log(xl); Überprüfen Sie, ob es einen console.log(xl); //Das System fügt dem Objekt eine __proto__-Eigenschaft hinzu, um auf das Prototypobjekt des Konstruktors zu verweisen Die Ausgabe ist: Erkennbare Existenz. Konsole.log(xl.__proto__ === Student.prototype); Das Druckergebnis ist: Rufen Sie die Score-Funktion über das Instanzobjekt wie folgt auf: xl.score(); Die Ausgabe ist: Es kann aufgerufen werden und seine Methodensuchregel lautet: Überprüfen Sie zuerst, ob für das XL-Objekt eine Zur Beschreibung kann folgendes Diagramm verwendet werden: Die Bedeutung des Objektprototyps 5. Konstruktor Drucken Sie gemäß dem vorherigen Beispiel den Objektprototyp (__proto__) und den Konstruktor (xl) ( Konsole.log(Student.Prototyp); Konsole.log(xl.__proto__); Das Druckergebnis ist: Es ist ersichtlich, dass sowohl der Objektprototyp (__proto__) als auch die Konstruktorfunktion (Prototyp) im Prototypobjekt eine Eigenschaft namens Konstruktor haben. Wir nennen die Drucken Sie dann die Konsole.log(Student.Prototyp.Konstruktor); Konsole.log(xl.__proto__.Konstruktor); Das Druckergebnis ist: Es ist ersichtlich, dass sie alle auf den Im Allgemeinen werden die Methoden eines Objekts im Prototypobjekt des Konstruktors festgelegt. Wenn Sie einem Konstruktor mehrere Methoden hinzufügen, können Sie die Objektmethode verwenden. Wie unten dargestellt: Student.Prototyp = { Punktzahl: Funktion(){ console.log('Die Kinder haben alle gute Noten!')}, Studie: Funktion(){ console.log('Lerne fleißig!'); } Beim Drucken des Konstruktorattributs des geänderten Prototypobjekts: Es wurde festgestellt, dass sich der Zeiger des Prototypobjekts geändert hat. Dies liegt daran, dass das Prototypobjekt in Form eines Objekts zugewiesen wird, wodurch der ursprüngliche Inhalt des Konstruktor-Prototypobjekts überschrieben wird. Auf diese Weise zeigt der geänderte wie folgt: Student.Prototyp = { Konstrukteur:Student, Punktzahl: Funktion(){ console.log('Die Kinder haben alle gute Noten!')}, Studie: Funktion(){ console.log('Lerne fleißig!'); } Schließlich lautet das ausgedruckte Ergebnis : Der Erfolg verweist zurück auf den ursprünglichen Konstruktor. 6. Die Beziehung zwischen Konstruktor, Instanz und PrototypobjektGemäß dem obigen Beispiel kann die Beziehung zwischen Konstruktor, Instanz und Prototypobjekt durch das folgende Diagramm beschrieben werden: 7. Suchmechanismus (Regeln) für JavaScript-Mitglieder
Und so weiter, bis 8. Erweitern integrierter Objekte Sie können Prototypobjekte verwenden, um die ursprünglich integrierten Objekte zu erweitern und anzupassen. Konsole.log(Array.prototype); Das Druckergebnis ist: Fügen Sie jetzt beispielsweise eine benutzerdefinierte Funktion hinzu, um die Summe der geraden Zahlen im Array zu ermitteln. Array.prototype.sum = Funktion(){ var Summe = 0; für(var i=0;i<this.length;i++){ Summe += dies[i]; } Rücklaufsumme; } Um zu prüfen, ob das integrierte Objekt erfolgreich erweitert wurde, geben Sie erneut ein: Konsole.log(Array.Prototyp); Die Konstruktion ist erfolgreich. Geben Sie ein bestimmtes Instanzobjekt an, um zu bestimmen, ob es normal verwendet werden kann: var arr = [1,2,3]; Konsole.log(arr.sum()); Das Druckergebnis ist: 2. Die Natur der Klasse
Dies ist das Ende dieses Artikels über JavaScript-Konstruktoren und -Prototypen. Weitere relevante JavaScript-Konstruktoren und -Prototypen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Rückblick auf die besten Webdesign-Arbeiten 2012 [Teil 1]
>>: So löschen Sie die Hintergrundfarbe des A-Tags, wenn in H5 darauf geklickt wird
Inhaltsverzeichnis Überblick 1. Middleware auf An...
Vor dem Verstecken: Nach dem Verstecken: CSS: Code...
In diesem Artikel finden Sie das Installations-Tu...
veranschaulichen: Stamm und Alias im Standort D...
Inhaltsverzeichnis Was ist das Protokoll langsame...
Inhaltsverzeichnis Unkontrollierte Komponenten Ko...
Wissen Sie, welche Schriftarten in den Logo-Desig...
<input> wird zum Sammeln von Benutzerinforma...
In diesem Artikel wird der Unterschied zwischen P...
1. Der Unterschied zwischen HTTP und HTTPS HTTP: ...
eins. Zuerst müssen Sie es in eine Idee verpacken...
Textkürzung mit CSS Beachten Sie den folgenden Co...
In diesem Artikel wird das grafische Tutorial zur...
Inhaltsverzeichnis Union-Abfrage 1. Fragen Sie di...
Inhaltsverzeichnis Vorwort Aufzählbare Eigenschaf...