⚠ Voraussetzungen:
1 Einführung in den neuen Operator MDN-Dokumentation: Der Klasse Person { Konstruktor(Name) { dieser.name = Name; } } //Eine Instanz eines benutzerdefinierten Objekttyps erstellen const person = new Person('Xiao Ming') //Erstellen Sie eine Instanz eines integrierten Objekts mit einem Konstruktor const date = new Date() Die Rolle von new: Erstellen Sie eine Instanz eines Objekts 2. Was hat „Neu“ bewirkt? Oben wurde erwähnt, dass die Funktion von Nehmen wir als Beispiel new Person(). Bei der Ausführung passieren die folgenden Dinge: Erstellen Sie ein leeres einfaches JS-Objekt const obj = {} Fügen Sie diesem Objekt das Attribut obj.__proto__ = Person.prototyp Ruft den Konstruktor Person.apply(obj) Wenn der Konstruktor nicht explizit ein Objekt zurückgibt, wird das neu erstellte Objekt zurückgegeben, d. h. 3 Simulieren Sie die Implementierung des neuen Operators Wie oben erwähnt, führt der const _new = Funktion(Konstruktor, ...Argumente) { const obj = {} obj.__proto__ = Konstruktor.Prototyp const res = Konstruktor.anwenden(obj, args) // Dieser Schritt wird im Detail unter „Ergänzung“ erklärt return res instanceof Object ? res : obj } Der Code ist sehr einfach, folgen Sie einfach den obigen 4 Schritten und schreiben Sie ihn Schritt für Schritt 4 Ergänzung Mit dieser Methode können wir die Schritte 1 und 2 kombinieren. const obj = Objekt.erstellen(Konstruktor.Prototyp) //Entspricht const obj = {} obj.__proto__ = Konstruktor.Prototyp Erklären Sie für Schritt 4
Funktion Person() { ... Rückgabe 1 } Wenn der Konstruktor explizit ein Objekt zurückgibt, etwa Dann ist Funktion Person() { // Funktionen sind auch Objekte return function() {} } Die letzte Codezeile unserer _new-Funktion lautet also: Gibt eine res-Instanz des Objekts zurück? res: obj
class Animal { ...}_new(Animal) // Meldet einen Fehler: Der Klassenkonstruktor Animal kann nicht ohne „new“ aufgerufen werden // Klassen können nur mit „new“ erstellt werden Dies ist das Ende dieses Artikels über die handschriftliche Implementierung von Neuem in JS. Weitere relevante neue Inhalte in JS finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung der Unterschiede zwischen HTML, SHHTML und XHTML
>>: Detaillierte Erläuterung der Speicherverwaltung der MySQL InnoDB-Speicher-Engine
Inhaltsverzeichnis Vorwort 1. Grundkenntnisse zu ...
Inhaltsverzeichnis Konzept-Einführung Logische Re...
Freunde, die in der Entwicklung tätig sind, insbe...
So sieht schöner HTML-Code aus. So schreiben Sie ...
Schauen Sie sich zuerst den Code an Code kopieren ...
Der Textarea-Tag ist ein HTML-Tag, den wir häufig ...
Inhaltsverzeichnis 1. Handschriftliche Instanz vo...
1. Verwenden Sie den Curl-Befehl für den Standard...
Listen werden verwendet, um eine Reihe ähnlicher o...
Erkennen Sie die Unterschiede zwischen den Method...
Inhaltsverzeichnis 1. Erstellen Sie eine Wasserze...
Einführung Während des Front-End-Projektentwicklu...
Inhaltsverzeichnis Einfache CASEWHEN-Funktion: Di...
1. Die Bedeutung von Webstandards verstehen - War...
Exportstandard ({ URL (URL = URL = URL), Methode ...