Sollte ich beim Erstellen von Objekten in js neue hinzufügen?
Dieser Artikel enthält hauptsächlich eine detaillierte Analyse des Problems des Hinzufügens neuer oder Nicht-Hinzufügens neuer Objekte zum vom js-Konstruktor erstellten Objekt. Wenn Sie an diesem Aspekt interessiert sind, lesen Sie ihn bitte.
Ich habe heute diese Frage gesehen:
Füllen Sie den Inhalt bei „TO DO“ aus, damit der folgende Code a.name = „name1“ unterstützt. ;
function Obj(name){ // TO DO } obj. /* TO DO */ = "name2"; var a = Obj("name1"); var b = new Obj;
Frage 1: Was macht der neue Betreiber?
Erstellen Sie ein neues Objekt.
Weisen Sie den Bereich des Konstruktors dem neuen Objekt zu (damit dieser auf das neue Objekt zeigt).
Führen Sie den Konstruktor aus Code ein (Eigenschaften zu diesem neuen Objekt hinzufügen);
gibt das neue Objekt zurück.
Frage 2: Was passiert, wenn der Konstruktor direkt ohne den neuen Operator ausgeführt wird?
function Obj(name){ this.name = name; console.log(this); // 严格模式下是undefined 非严格模式下是window对象 } var a = Obj("name1"); console.log(a); // 结果 => undefined
Oh, es stellt sich heraus, dass es nur als normaler Funktionsaufruf ausgeführt wird. Obj hat keinen Rückgabewert, also ist a undefiniert.
Zusammenfassung des Unterschieds zwischen den beiden
Verwenden Sie den neuen Operator, um ein Objekt zu erstellen, und der Konstruktor hat keinen Rückgabewert oder gibt einen Basisdatentyp zurück, dann wird das Objekt zurückgegeben, wie in das folgende Beispiel:
function Obj(name){ this.name = name; } var b = new Obj; console.log(b); // Obj { name: undefined } function Obj(name){ this.name = name; return 'chic'; } var b = new Obj; console.log(b); // 同上
Wenn der Konstruktor einen Referenztyp zurückgibt:
function Obj(name){ this.name = name; return {}; } var b = new Obj; console.log(b); // {}
Zusammenfassung
Für die Ausführung des Konstruktors ohne Hinzufügen von new ist der Rückgabewert das Ausführungsergebnis des Konstruktor; zur Ausführung mit dem neuen Schlüsselwort. Wenn der Rückgabewert ein Basisdatentyp ist, wird der Rückgabewert ignoriert. Wenn der Rückgabewert ein Referenztyp ist, wird der Referenztyp zurückgegeben.
Haben Sie die Antwort auf die Frage?
Referenzantwort:
function Obj(name){ this.name = name; return this; } Obj.prototype.name = "name2"; var a = Obj("name1"); var b = new Obj;
Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
So implementieren Sie die Bildvorschaufunktion im WeChat-Applet
So verwenden Sie die Bildanmerkungskomponente in jquery .picsign
Wie verpacke ich die KOA2-Framework-App über Webpack? Was soll ich tun?
Detaillierte Interpretation der Entwicklungsideen für Vue-Komponenten
Das obige ist der detaillierte Inhalt vonSollte ich beim Erstellen von Objekten in js neue hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So lösen Sie das Problem, dass ActiveX-Komponenten keine Objekte erstellen können

So verwenden Sie JS und Baidu Maps, um die Kartenschwenkfunktion zu implementieren

Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen mit PHP und JS

Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung

PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen

So erstellen Sie ein Aktien-Candlestick-Diagramm mit PHP und JS

So verwenden Sie JS und Baidu Maps, um die Funktion zum Zeichnen von Kartenpolygonen zu implementieren

So verwenden Sie JS und Baidu Maps, um die Karten-Heatmap-Funktion zu implementieren
