Warum gibt der folgende Fehler false zurück?Warum ist Object.prototype in Object false?
Object.prototype instanceof Object
Warum gibt der folgende Fehler false zurück?Warum ist Object.prototype in Object false?
Object.prototype instanceof Object
Denn es fragt grundsätzlich, ob Object.prototype
von Object
‚s .prototype
Objekt erbt: Es ist nicht.
a instanceof b
entspricht - es testet, ob b.prototype
in der Prototypkette von a
ist. In Ihrem Fall ist es nicht in die Kette, weil es der Anfang der Kette selbst ist. isPrototypeOf
ist nicht reflexiv.
Bro - hast du einen Blog, der deine Gefühle auf OLOO vs. Neu etc .. und Prototyp etc. erklärt. Ich mag die Art wie du ausdrücken/erklären. sehr prägnant. Jede Seite von dir kann ich lesen? –
@jamesemanon: Nein (noch nicht). Aber Sie können [meine SO Antworten zum Thema natürlich] durchsuchen (http://stackoverflow.com/search?tab=votes&q=user%3a1048572%20is%3aanswer%20votes%3a4%20.prototype) :-) – Bergi
@ jamesemanon: Um ehrlich zu sein, ich habe nie den Begriff [OLOO] gehört (https://github.com/getify/You-Dont-Know-JS/blob/master/this%20%26%20object%20prototypes/ch6 .md # Delegation-Theorie) vor und musste es googeln. Aber ja, das scheint das Modell des Denkens zu sein, das Sie (oder ich) in JS verwenden sollten.Ich mag seine Generativität, das Konzept von Klassen kann dadurch trivial implementiert werden. Mit Konstruktorfunktionen & 'new' ist nur syntaktischer Zucker (wie ES6 Klassen sind, aber mit mehr" gemeinsamer "Syntax) – Bergi
Referenzierung MDN:
instanceof
Die Bedienungsperson überprüft, ob sich ein Objekt in seinem Prototyp Kette dieprototype
Eigenschaft eines Konstruktors.
Weil Object.prototype nicht aus der Object() - Funktion gemacht wurde – Aravind
Aber das lustige ist, 'Object.prototype.toString() ===" [object Object] "'. – soktinpk
@Aravind: 'Funktion' war nicht entweder, aber ist 'instanceof Object' – Bergi