Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Diskussion über das Prinzip des neuen Operators in JS

Eine kurze Diskussion über das Prinzip des neuen Operators in JS

怪我咯
怪我咯Original
2017-07-04 15:22:321373Durchsuche

Der folgende Editor bringt Ihnen eine kurze Diskussion über das Prinzip des neuenOperators in Javascript. Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Editor, um einen Blick darauf zu werfen.

Neu in JavaScript ist ein Syntaxzucker. Für diejenigen, die objektorientierte Sprachen wie C++, Java und C# studiert haben, denken sie Dass es in js einen Unterschied zwischen Klassen und Objekten gibt, ist alles ein Objekt, das gründlicher ist als Java.

Der Prozess von new besteht tatsächlich darin, ein neues Objekt zu erstellen und legen Sie den Prototyp des neuen Objekts auf den Konstruktor fest. Bei der Verwendung von new sind insgesamt drei Objekte an der Zusammenarbeit beteiligt. Die Konstruktorfunktion ist das erste Objekt, das Prototypobjekt ist zwei Ein neu generiertes leeres Objekt ist das dritte Objekt. Schließlich wird ein leeres Objekt zurückgegeben, aber dieses leere Objekt ist kein Vakuum, sondern eine Referenz , die bereits einen Prototyp (Proto) enthält )

Die Schritte sind wie folgt:

(1) Erstellen Sie ein leeres Objekt obj

(2) Lassen Sie das proto (IE hat dieses Attribut nicht) Mitglied des leeren Objekts zeigt auf das Prototyp-Mitgliedsobjekt des Konstruktors

(3) Verwenden Sie apply, um die Konstruktorfunktion aufzurufen, und diese ist gebunden zum leeren Objekt obj.

(4) Gibt das leere Objekt obj zurück

Sie können Ihre eigene Funktion schreiben, anstatt new zu verwenden:

function NEW_OBJECT(Foo){

var obj={};
obj.proto=Foo.prototype;
obj.proto.constructor=Foo;
Foo.apply(obj,arguments)
return obj;

}

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über das Prinzip des neuen Operators 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