Heim > Web-Frontend > js-Tutorial > Hauptteil

Welche Rolle spielt new() in JS?

php中世界最好的语言
Freigeben: 2018-04-20 17:17:49
Original
4802 Leute haben es durchsucht

Dieses Mal zeige ich Ihnen, welche Rolle new() in JS spielt und welche Vorsichtsmaßnahmen bei der Verwendung von new() in JS gelten. Das Folgende ist ein praktischer Fall, schauen wir uns das an .

Vorwort

Wie andere Hochsprachen hat auch Javascript einen neuen Operator wird verwendet, um eine Klasse zu instanziieren und ein Instanzobjekt im Speicher zuzuweisen. Aber in JavaScript ist alles ein Objekt. Warum müssen wir new verwenden, um Objekte zu generieren? In diesem Artikel erfahren Sie mehr über das Geheimnis des Neuen in Javascript...

Um eine neue Instanz von Person zu erstellen, müssen Sie den neuen Operator verwenden.

Der Aufruf des -Konstruktors auf diese Weise führt tatsächlich zu den folgenden 4 Schritten:

(1) Erstellen eines neuen Objekts;

(2) Weisen Sie dem neuen Objekt den Bereich des Konstruktors zu (damit dieser auf das neue Objekt verweist).

(3) Führen Sie den Code im Konstruktor aus (fügen Sie dem neuen Objekt Attribute hinzu);

(4) Gibt ein neues Objekt zurück.

neuer Operator

Nach der Einführung der oben genannten Grundkonzepte und dem Hinzufügen des neuen Operators können wir das traditionelle

Objekt vervollständigen -orientierte -Klasse + neue Methode erstellt Objekte In JavaScript nennen wir diese Methode pseudoklassisch.

Basierend auf dem obigen Beispiel führen wir den folgenden Code aus

var obj = new Base();
Nach dem Login kopieren
Was ist das Ergebnis dieses Codes, das wir in der Javascript-Engine sehen:

Was genau macht der neue Operator? Es ist eigentlich ganz einfach, er macht drei Dinge.

var obj = {};
obj.proto = Base.prototype;
Base.call(obj);
Nach dem Login kopieren
In der ersten Zeile erstellen wir ein leeres Objekt obj

In der zweiten Zeile verweisen wir das Proto-Mitglied dieses leeren Objekts auf das Prototyp-Mitgliedsobjekt des Basisfunktionsobjekts

In der dritten Zeile ersetzen wir den this-Zeiger des Base-Funktionsobjekts durch obj und rufen dann die Base-Funktion auf. Daher weisen wir dem obj-Objekt den Wert „base“ zu ". Über die Verwendung der Aufruffunktion.

Was wird der Effekt sein, wenn wir dem Base.prototype-Objekt einige Funktionen hinzufügen?

Der Code lautet beispielsweise wie folgt:

Base.prototype.toString = function() {
 return this.id;
}
Nach dem Login kopieren
Wenn wir dann new verwenden, um ein neues Objekt zu erstellen, entsprechend den Eigenschaften von Proto, dem toString Die Methode kann auch neue Objekte erstellen, auf die zugegriffen wird. Wir sehen also: Im

-Konstruktor legen wir die Mitgliedsvariablen der „Klasse“ fest (zum Beispiel: id im Beispiel) und im Konstruktorobjektprototyp legen wir die öffentlichen Methoden der „Klasse“ fest '. Daher werden die Auswirkungen von Klassen und Klasseninstanziierung durch Funktionsobjekte und Javascript-spezifische Proto- und Prototyp-Mitglieder sowie neue Operatoren simuliert.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

jQuery implementiert Vorschaufunktion beim Hochladen von Bildern

vue2 implementiert automatische Verknüpfung von Warenkorb und Adresse

Das obige ist der detaillierte Inhalt vonWelche Rolle spielt new() in JS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage