Perché il seguente risultato è falso?Perché Object.prototype instanceof Object è falso?
Object.prototype instanceof Object
Perché il seguente risultato è falso?Perché Object.prototype instanceof Object è falso?
Object.prototype instanceof Object
perché chiede in sostanza se Object.prototype
non eredita da .prototype
oggetto Object
s': Non è così.
a instanceof b
equivale a b.prototype.isPrototypeOf(a)
- mette alla prova se b.prototype
si trova nella catena di prototipi a
. Nel tuo caso, non è nella catena, perché è l'inizio della catena stessa. isPrototypeOf
non è riflessivo.
Bro - hai un blog che spiega i tuoi sentimenti su OLOO rispetto a Nuovo ecc. E prototipo ecc. Mi piace il modo in cui esprimere/spiegare. molto succinta. Qualcuno dei tuoi siti che posso leggere? –
@jamesemanon: No (t ancora). Ma puoi sfogliare [le mie risposte SO sull'argomento, naturalmente] (http://stackoverflow.com/search?tab=votes&q=user%3a1048572%20is%3aanswer%20votes%3a4%20.prototype) :-) – Bergi
@ jamesemanon: Ad essere onesti, non ho mai sentito il termine [OLOO] (https://github.com/getify/You-Dont-Know-JS/blob/master/this%20%26%20object%20prototypes/ch6 .md # delegation-theory) prima e ho dovuto google. Ma sì, quello sembra essere il modello di pensiero che dovresti (o: io) usare in JS.Mi piace la sua generosità, il concetto di classi può essere banalmente implementato da esso. L'uso delle funzioni di costruzione e 'new' è solo zucchero sintattico (come le classi ES6, ma con una sintassi più" comune ") – Bergi
Riferimento MDN:
Le prove
instanceof
operatore se un oggetto contiene nella sua catena di prototipi proprietàprototype
di un costruttore.
Poiché Object.prototype non è stato creato dalla funzione Object() – Aravind
Ma la cosa divertente è, 'Object.prototype.toString() ===" [oggetto oggetto] "'. – soktinpk
@Aravind: 'Funzione' non era né, ma è' instanceof Object' – Bergi