Heim >Web-Frontend >js-Tutorial >Welche Rolle spielt new() in JS?

Welche Rolle spielt new() in JS?

php中世界最好的语言
php中世界最好的语言Original
2018-04-20 17:17:494831Durchsuche

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();
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);
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;
}
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!

Stellungnahme:
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