Verwendung von neuenDie Funktion von new besteht darin, ein Instanzobjekt über einen Konstruktor zu erstellen. Die Beziehung zwischen der Instanz, dem Prototyp und dem Konstruktor ist in der folgenden Abbildung dargestellt: Fassen wir zunächst zusammen
Detaillierte BeschreibungBei der Ausführung der neuen Operation werden folgende Schritte nacheinander ausgeführt: 1. Erstellen Sie ein leeres Objekt
let obj = {} 2. Die interne Eigenschaft __proto__ des leeren Objekts wird der prototype-Eigenschaft des Konstruktors zugewiesen
Funktion Foo(Zahl) { diese.Nummer = Nummer } obj.__proto__ = Foo.prototyp 3. Zeigen Sie mit this des Konstruktors auf ein leeres Objekt
Foo.call(Objekt, 1) 4. Führen Sie den Code im Konstruktor aus
5. Geben Sie das neue Objekt zurück
Emulieren des neuen OperatorsDie folgende myNew-Funktion simuliert das Verhalten des neuen Operators: Funktion meinNeu(func, ...args) { let obj = {} obj.__proto__ = Funktion.Prototyp let res = func.apply(obj, args) Gibt eine res-Instanz des Objekts zurück? res: obj } Funktion Foo(Zahl) { diese.Nummer = Nummer } lass foo1 = meinNeues(Foo, 1) console.log(foo1 Instanz von Foo) // wahr konsole.log(foo1.Nummer) // 1 lass foo2 = neues Foo(2) console.log(foo2 Instanz von Foo) // wahr console.log(foo2.Nummer) // 2 Der Operator instanceof wird oben verwendet, um zu bestimmen, ob der Rückgabewert des Konstruktors eine Instanz von Object ist, dh ob es sich um einen Referenztypwert handelt. Dies liegt daran, dass alle Referenztypwerte Instanzen von Object sind und Object der Basistyp aller Referenztypwerte ist. Damit ist dieser Artikel über das Prinzip des neuen Operators in JavaScript zu Ende. Weitere relevante Inhalte zum Prinzip des neuen Operators in JS 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:
|
<<: Erstellen Sie eine virtuelle Umgebung mit venv in Python3 in Ubuntu
>>: Schritte zum Installieren von Superset unter dem Win10-System
1. Scroll Snap ist eine unverzichtbare Fähigkeit ...
Als ich heute VMware verwendete, um eine neue vir...
Sperren in MySQL Sperren sind ein Mittel, um Ress...
border-radius:10px; /* Alle Ecken sind mit einem ...
1. Überprüfen Sie, ob der MySQL-Dienst gestartet ...
Vorwort: Manchmal ist der Hauptteil einer Route d...
Dieser Artikel stellt kurz den Prozess der Einric...
WML (Wireless Markup Language). Es handelt sich u...
Im vorherigen Artikel „Änderungen der MySQL-Tabel...
Meine ursprüngliche Absicht war, die $notify-Bena...
Einige Studenten sagten, dass sie auf das Problem...
Ich habe viele relevante Tutorials im Internet ge...
Da Uniapp nicht über eine autorisierte DingTalk-A...
Methode 1: INSERT INTO t1(Feld1,Feld2) VALUE(v001...
HTML-Formulare werden verwendet, um verschiedene ...