So implementieren Sie den neuen Operator von JavaScript selbst

So implementieren Sie den neuen Operator von JavaScript selbst

Konstruktor

Bevor Sie etwas Neues einführen, müssen Sie wissen, was ein Konstruktor ist.

Es gibt keinen Unterschied in der Schreibweise zwischen einem Konstruktor und einer normalen Funktion. Wenn eine Funktion über new Fun() aufgerufen wird, wird sie als Konstruktor bezeichnet, und der erste Buchstabe des Konstruktors wird normalerweise groß geschrieben.

Funktion Benutzer(Name) {
    dieser.name = Name;
}

lass u = neuer Benutzer('leo');

Hier ist User der Konstruktor. Natürlich können Sie auch User() direkt aufrufen, aber dadurch wird keine Instanz erstellt. Im nicht strikten Modus wird das Namensattribut an das Fenster gehängt.

neuer Operator

Was also genau macht der neue Operator, um eine Instanz zu erstellen?

Der neue Operator erstellt eine Instanz eines benutzerdefinierten Objekttyps oder eine Instanz eines integrierten Objekts, das über einen Konstruktor verfügt. Das neue Schlüsselwort führt die folgenden Operationen aus:

1. Erstellen Sie ein leeres, einfaches JavaScript-Objekt (d. h. **{}**);

2. Verknüpfen Sie das Objekt (d. h. legen Sie den Konstruktor des Objekts fest) mit einem anderen Objekt.

3. Verwenden Sie das in Schritt 1 neu erstellte Objekt als Kontext für **dieses**;

4. Wenn die Funktion kein Objekt zurückgibt, gibt sie **dieses** zurück.

Das obige Zitat stammt vom neuen Betreiber - MDN

Vielleicht verstehst du die Schritte 2 und 4 nicht so gut, deshalb fasse ich sie hier noch einmal zusammen:

1. Erstellen Sie ein leeres Objekt u = {}

2. Prototyp binden, u.__proto__ = User.prototype

3. Rufen Sie die Funktion User() auf und übergeben Sie das leere Objekt u als User.call(u).

4. Wenn die Funktion User() nach der Ausführung einen Objekttyp zurückgibt, geben Sie diese Variable zurück, andernfalls geben Sie diese zurück. Hinweis: Wenn der Konstruktor einen Basistypwert zurückgibt, wird er davon nicht betroffen sein und trotzdem diese zurückgeben

Implementieren Sie selbst ein Neues

Nachdem wir das Prinzip des neuen Operators kennen, implementieren wir selbst eine FakeNew-Funktion.

Funktion FakeNew() {
    lass obj = {};
  
    //Konvertiere die arrayähnlichen Argumente in ein Array und verschiebe den ersten Parameter, der der Konstruktor ist, let constructor = [].shift.apply(arguments);  

    // Prototyp binden obj.__proto__ = Konstruktor.prototyp;    
  
    // Rufen Sie den Konstruktor auf und übergeben Sie obj wie folgt: let res = Constructor.apply(obj, arguments);    

    // zurückgeben return typeof res === 'Objekt'? res: obj;   
}

Funktion Benutzer(Name) {
    dieser.name = Name;
}

Benutzer.prototype.getName = Funktion() {
    gib diesen Namen zurück;
}

lass u = FakeNew(Benutzer, 'leo');
konsole.log(u);
console.log(u.getName());

Die Kommentare der entsprechenden Schlüsselschritte wurden dem Code beigefügt, sodass wir einen neuen Vorgang implementiert haben. Ich glaube, dass Sie ein klareres Gefühl haben werden, wenn Sie in Zukunft etwas Neues sehen.

Oben finden Sie Einzelheiten dazu, wie Sie den neuen Operator von JavaScript selbst implementieren können. Weitere Informationen zum neuen Operator von JavaScript finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Lassen Sie uns ausführlich über das Prinzip und die Implementierung von new in JS sprechen
  • Detaillierte Beschreibung der Funktion von new in JS
  • Detaillierte Erklärung des Prinzips und Beispiel des new-Operators in JavaScript
  • Untersuchung von zwei Möglichkeiten zur Implementierung von „new“ in JavaScript
  • Detaillierte Erklärung der Rolle des neuen Operators in Js
  • Zusammenfassung gängiger Methoden von C# Newtonsoft.Json
  • C# Newtonsoft.Json analysiert mehrere verschachtelte JSON-Dateien für ein Deserialisierungsbeispiel
  • c#: Newtonsoft.Json-Paketvorgang hinzufügen
  • Der neue Befehl in JavaScript
  • Handschriftliche Implementierung von new in JS

<<:  Beispiel für die Implementierung der Hochverfügbarkeit von Keepalived+Nginx

>>:  Tutorial zur Installation und Kennwortkonfiguration von MySQL 5.7.21

Artikel empfehlen

Vue Virtual DOM – Schnellstart

Inhaltsverzeichnis Virtueller DOM Was ist virtuel...

Lernen Sie die Grundlagen der JavaScript-DOM-Operationen in einem Artikel

DOM-Konzepte DOM: Dokumentobjektmodell: Das Dokum...

Detaillierte Erläuterung der Verwendung von Object.create-Instanzen in js

1. Erstellen Sie mit der Methode Object.create() ...

Fallstudie zum JavaScript DOMContentLoaded-Ereignis

DOMContentLoaded-Ereignis Es wird buchstäblich au...

Lösung für SQL Server-Datenbankfehler 5123

Weil ich ein Datenbank-Tutorial habe, das auf SQL...

Allgemeines Startskriptbeispiel für ein Linux-Java-Programm

Allerdings ist die Häufigkeit des Shell-Starts se...

Detaillierte Erläuterung der benutzerdefinierten Vue-Anweisungen

Inhaltsverzeichnis Benutzerdefinierte Vue-Direkti...

Beispiel für die Verwendung von Docker zum Erstellen eines ELK-Protokollsystems

Die folgenden Installationen verwenden alle das V...