Was genau macht die neue Operation von JS? Schauen wir es uns Schritt für Schritt an.
Zum Beispiel definiere ich eine Funktion und führe die neue Operation aus:
function Foo(){} var foo = new Foo();
Gehirnergänzung:
Jede Funktion hat ein Attribut namens Prototyp, und der Typ ist Objekt , ein Referenzobjekt.
Jedes Objekt hat ein Attribut namens __proto__. Das Typfeld ist Objekt, das auch ein Referenzobjekt ist.
Wenn die JavaScript-Engine die neue Operation ausführt, öffnet sie zunächst sofort einen Speicherblock und erstellt ein leeres Objekt (und verweist dieses auf dieses Objekt).
Führen Sie als Nächstes die Konstruktorfunktion Foo() aus, um das leere Objekt zu erstellen (alle Attribute und Methoden im Konstruktor werden nacheinander auf dem leeren Objekt installiert, weshalb es als Konstruktor bezeichnet wird).
Diesem leeren Objekt wird jedoch ein Attribut namens __proto__ hinzugefügt, und dieses __proto__ zeigt auf das Prototypobjekt von Foo(). Mit anderen Worten: __proto__ = Prototyp;