1. Konstruktor und InstanziierungWenn unsere Programmierung objektorientiert ist, ist der erste Prozess die Abstraktion => dann die Instanziierung. Beispielsweise abstrahieren wir eine Person und ich kenne die grundlegenden Informationen über die Person. Name, Alter, Geschlecht usw. Wir abstrahieren zuerst und instanziieren, nachdem die Abstraktion abgeschlossen ist. 2. Welche Beziehung besteht zwischen Konstruktor und Instanziierung?//Dieser benutzerdefinierte Konstruktor befindet sich in der abstrakten Funktion Person(Name, Alter, Geschlecht){ dies.name=Name; dies.Alter=Alter; dies.Geschlecht=Geschlecht; dies.sagen=funktion(){ console.log("Mein Name ist",Name) } } // Dieser Prozess ist eine Instanziierung let per1=new Person('Person',300,'Person'); per1.say(); //Aufruf //let per1=new Person('Anonym',300,'Anonym'); Durch die obige Codezeile.
console.log( per1.constructor===Person ) //Gibt true zurück
3. Ist per1.say gleich per2.say?Funktion Person(Name,Alter,Gefällt mir) { dies.name=Name; dies.Alter=Alter; dies.like=like; dies.sagen=funktion(){ console.log('Ich kann Mahlzeiten auslassen'); } } var per1=new Person("Person",300,'Person'); var per2=new Person('Person','10000','10000'); per1.sagen(); per2.sagen(); console.log( per1.say == per2.say ) //false 4. per1.say ist nicht gleich der Schlussfolgerung von per2.say
5. Beispielcodeproblem5.1 Probleme mit dem CodeFunktion Person(Name,Alter,Gefällt mir) { dies.name=Name; dies.Alter=Alter; dies.like=like; dies.sagen=funktion(){ console.log('Ich kann Mahlzeiten auslassen'); } }; für (var index = 0; index < 100; index++) { var per=new Person("Person",300,'Person'); pro.sagen(); }
Können wir es optimieren? 5.2 Code optimieren, um Platzverschwendung zu vermeidenFunktion comSay(){ //Führen Sie die gleiche Logik aus console.log('Ich kann Mahlzeiten auslassen') }; Funktion Person(Name,Alter,Gefällt mir) { dies.name=Name; dies.Alter=Alter; dies.like=like; this.say=comSay; //Keine Klammern hinzufügen}; var per1=new Person("Person",300,'Person'); var per2=new Person('Person','10000','10000'); console.log( per1.say==per2.say ) //wahr So sparen wir Platz. Bei jedem Aufruf handelt es sich um dieselbe Methode. 5.3 Mit dieser Methode können wir auch die Prototypmethode verwendenFunktion Person(Name,Alter,Gefällt mir) { dies.name=Name; dies.Alter=Alter; dies.like=like; }; Person.prototype.comSagen Sie=function(){ console.log('Ich kann Mahlzeiten auslassen') } var per1=new Person("Person",300,'Person'); var per2=new Person('Person','10000','10000'); console.log( per1.comSay==per2.comSay ) //wahr // Wir können Datenaustausch auch durch Prototypen lösen
Damit ist dieser Artikel über die Beziehung zwischen JS-Konstruktoren und Instanziierungen und die Einführung von Prototypen abgeschlossen. Weitere Informationen zur Beziehung zwischen JS-Konstruktoren und Instanziierungen und der Einführung von 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:
|
<<: Einführung in die Verwendung von this in HTML-Tags
>>: Einführung in den visuellen Ausdruck des Kerninhalts von Webseiten (Bild und Text)
Temporäre MySQL-Tabellen sind sehr nützlich, wenn...
Binlog ist eine binäre Protokolldatei, die alle M...
In der neuesten Version von WIN10 hat Microsoft e...
„Wie lässt man eine Website hochwertig aussehen? ...
Im offiziellen Dokument heißt es: Durch Einfügen ...
Inhaltsverzeichnis schließen Fallstudie: Vertiefe...
Inhaltsverzeichnis Hintergrund Frage 1 Fehler 2 F...
Der Linux-Befehl zum Ausführen des JAR-Pakets lau...
Detaillierte Erläuterung der Implementierungsmeth...
MySQL-Leistungsoptimierung Die MySQL-Leistungsopt...
Dieser Artikel enthält das ausführliche Installat...
Dieser Artikel beschreibt anhand von Beispielen d...
Standardmäßig erfolgt das Lesen und Schreiben von...
Wie unten dargestellt: Kopieren Sie die Dateien d...
Nginx hat in nur wenigen Jahren den Großteil des ...