Javascript-Prototypen und Vererbung [Duplikat]
Meine Frage ist, ob das Objekt das letzte in der Prototypenkette ist. Alle Objekte erben Eigenschaften und Methoden davon. Wie er Methoden von Function.prototype erbt. Warum Object.__proto__ === Function.prototype// wahr, warum Object.__proto__ist nicht null.
Antworten
Das Grundlegende Objectin JavaScript muss eine Möglichkeit haben, es zu instanziieren, daher ist ein prototypeObjekt erforderlich , um Zeilen wie diese zu unterstützen:
let myObj = new Object();
Und deshalb Object.__proto__nicht null.
Das FunctionObjekt ist ein spezieller Objekttyp, der die Objektinstanziierung über einen Konstruktor erleichtert und bei dieser Verwendung als "Konstruktorfunktion" bezeichnet wird. Es ist also sinnvoll Object, von einem FunctionObjekt zu erben, damit Objektinstanzen erstellt werden können.
Funktion ist auch ein Objekt. Es erbt also auch von Object.
Aber lassen Sie sich nicht verwirren Object.__proto__. Das fügt der Browser hinzu und ist eigentlich nicht Teil der Sprache. Verlassen Sie sich also nicht darauf und verwenden Sie es nicht.
Im Wesentlichen Function.prototypeist Object.__proto__.