JavaScript ist eine objektorientierte Stimme, dh alles ist ein Objekt.
Wie generiert man ein Objekt? In der Java -Welt werden Objekte nach Klasseninstanzen erstellt. In den Laien -Begriffen werden Dinge in eine Form abstrakt und verwenden diese Form (Klasse), um bestimmte reale Objekte (Objekte) zu erzeugen.
Es gibt jedoch kein Konzept der Klasse in JS. Einige sind "Prototypen", und Objekte stammen aus Prototypen. In Laiengesicht ist "Prototyp" in der Welt von JS keine Form, sondern ein konkretes Objekt (Objekt). Alle Objekte stammen aus einem anderen Objekt, und dieses abgeleitete Objekt ist das sogenannte "Prototyp-Objekt".
Es gibt drei Arten von Objekten in JavaScript, 1 vom Benutzer erstellter Objekt, 2 Konstruktorobjekt, 3 Prototyp-Objekt
Jedes dieser drei Objekte verfügt über ein Eigenschaft -_Proto__ -Attribut, das auf den Prototyp des Objekts hinweist und auf Objekt zurückgeführt werden kann.
Der Konstruktor verfügt über ein Prototypobjekt, das auf ein Prototypobjekt hinweist. Wenn das Objekt über diesen Konstruktor erstellt wird, verweist das __Proto__ -Attribut des erstellten Objekts auf das Prototyp -Attribut des Konstruktors.
Das Prototypobjekt verfügt über eine Konstruktoreigenschaft, die auf seinen entsprechenden Konstruktor verweist.
Reden ist billig, zeig mir den Code! Schauen wir uns den Code an:
var obj = {}; console.log (obj);Erweitern wir __Proto__, um zu sehen: sind einige Standardmethoden.
Sie werden auf jeden Fall passieren, dass es in diesem __Proto__ -Objekt auch ein __Proto__ -Objekt gibt. Wie wir gerade gesagt haben, hat jedes Objekt ein __Proto__ -Attribut, das auf sein Prototypobjekt hinweist. Drucken wir das __Proto__ in diesem __Proto__:
console.log (obj .__ proto __.__ proto__); //-> null
Das Ergebnis ist Null, was darauf hinweist, dass das Prototyp-Objekt auf oberster Ebene eingetroffen ist. OBJ ist in Zahnspangen {} definiert, und das Prototypobjekt von Obj ist natürlich das Objekt der obersten Ebene von JS.
Schauen wir uns den Code auf einer Seite an, um unser Verständnis zu stärken:
var parent = {name: "übergeordnet"}; var child = {name: "child", __proto__: parent}; var subchild = {name: "subchild", __proTo__: child} console.log (subchild);