Heim Web-Frontend js-Tutorial Sollte ich beim Erstellen von Objekten in js neue hinzufügen?

Sollte ich beim Erstellen von Objekten in js neue hinzufügen?

Jun 11, 2018 am 11:58 AM
js 创建对象 构造函数

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;
Nach dem Login kopieren

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
Nach dem Login kopieren

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); // 同上
Nach dem Login kopieren

Wenn der Konstruktor einen Referenztyp zurückgibt:

function Obj(name){
this.name = name;
return {};
}
var b = new Obj;
console.log(b); // {}
Nach dem Login kopieren

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;
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So lösen Sie das Problem, dass ActiveX-Komponenten keine Objekte erstellen können So lösen Sie das Problem, dass ActiveX-Komponenten keine Objekte erstellen können Jan 24, 2024 pm 02:48 PM

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 So verwenden Sie JS und Baidu Maps, um die Kartenschwenkfunktion zu implementieren Nov 21, 2023 am 10:00 AM

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 Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen mit PHP und JS Dec 17, 2023 pm 06:55 PM

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 Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Apr 03, 2024 am 11:55 AM

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

PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen Dec 18, 2023 pm 03:39 PM

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

So erstellen Sie ein Aktien-Candlestick-Diagramm mit PHP und JS So erstellen Sie ein Aktien-Candlestick-Diagramm mit PHP und JS Dec 17, 2023 am 08:08 AM

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 Funktion zum Zeichnen von Kartenpolygonen zu implementieren Nov 21, 2023 am 10:53 AM

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 So verwenden Sie JS und Baidu Maps, um die Karten-Heatmap-Funktion zu implementieren Nov 21, 2023 am 09:33 AM

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

See all articles