5

Quando creo un oggetto vuoto:Perché non riesco a visualizzare __proto__ al momento della creazione dell'oggetto?

var o = {}; 

Perché non è possibile visualizzare l'oggetto '__proto __' quando creo un nuovo oggetto, ma posso quando ho aggiungere una funzione?

enter image description here


Edit: Per completezza, per creare un oggetto veramente vuoto (nessun legame prototipale), potremmo fare:

var o = Object.create(null); 

Ma ai fini della questione, I' Useremo la sintassi o = {}.


Edit 2: This shows the prototype linkage su una creazione di oggetti, in modo da __ del __proto sono lì, ma io non li possono visualizzare nel debugger a meno che non aggiungo un oggetto funzione.

enter image description here


Edit 3: Funziona in Firefox:

enter image description here

+3

Perché i produttori di questo particolare debugger (che non hai nominato) implementano la loro console in questo modo? Chissà? Forse hanno capito che aveva senso solo rendere un oggetto espandibile quando ha proprietà. – JLRishe

+0

Sto usando Google Chrome versione 40.0.2214.115 m – Data

+1

Puoi vederlo. Digitare o .__ proto__ - non si otterrà undefined. Questo è legato a una difficoltà reale che stai avendo? –

risposta

2

Chi lo sa? Sembra che sia una decisione di progettazione da parte degli implementatori del debugger di Chrome. A meno che qualcuno qui non sia al corrente del loro processo decisionale, penso che questa domanda sia fuori tema.

Forse hanno capito che non è necessario essere in grado di espandere gli oggetti a meno che non abbiano metodi.

Sia IE che Firefox mostrano la proprietà __proto__ nella loro console, anche su oggetti vuoti. Se si desidera osservare prototipi di oggetti per scopi di apprendimento, forse sarebbe meglio farlo in uno di quei browser.

+0

Fuori tema da cosa? Essere in grado di visualizzare la catena del prototipo in un debugger sono due facce della stessa medaglia. – Data

+2

@Data Off-topic per overflow dello stack. Le domande sull'argomento riguardano come risolvere problemi pratici di programmazione, non sul motivo per cui alcune librerie/prodotti/progettisti di linguaggi che non sono qui hanno preso una particolare decisione progettuale.Non so cosa stai cercando di dire con la tua analogia "due lati della stessa medaglia". Sembra che tu abbia nominato solo un lato. – JLRishe

+0

Ora capisco che si tratta di un problema di Chrome, quindi è un peccato non aver controllato FF, ma mettere in discussione la validità della portata del mio OP sembra irragionevole; c'è un diagramma di flusso che dovrei seguire per accertarmi se mi è permesso fare una domanda? – Data

Problemi correlati