5

Kiedy utworzyć pusty obiekt:Dlaczego nie mogę wyświetlić __proto__ podczas tworzenia obiektu?

var o = {}; 

Dlaczego nie mogę obejrzeć obiekt „__proto __” podczas tworzenia nowego obiektu, ale może kiedy dodać funkcję?

enter image description here


Edit: Dla kompletności, aby stworzyć naprawdę pusty obiekt (nie prototypal podnośnik), możemy zrobić:

var o = Object.create(null); 

Ale dla celów pytanie, I” Użyję składni o = {}.


Edit 2: This shows the prototype linkage Upon a tworzenie obiektów, tak __ przez __proto są tam, ale nie mogę zobaczyć ich w debugger chyba dodać obiekt funkcyjny.

enter image description here


Edit 3: To działa w Firefoksie:

enter image description here

+3

Dlaczego twórcy tego konkretnego debuggera (którego nie nazwiesz) implementują swoją konsolę w ten sposób? Kto wie? Być może doszli do wniosku, że ma sens jedynie rozszerzanie obiektu, gdy ma on właściwości. – JLRishe

+0

Używam Google chrome Wersja 40.0.2214.115 m – Data

+1

Możesz ją wyświetlić. Wpisz o .__ proto__ - nie zostaniesz niezdefiniowany. Czy jest to związane z rzeczywistą trudnością, z którą się miewasz? –

Odpowiedz

2

Kto wie? Wydaje się, że jest to decyzja projektowa ze strony implementatorów debuggera Chrome. O ile ktoś tutaj nie ma dostępu do procesu decyzyjnego, myślę, że to nie jest temat.

Być może uznali, że nie trzeba powiększać obiektów, jeśli nie mają metod.

Zarówno IE, jak i Firefox pokazują właściwość __proto__ w konsoli, nawet na pustych obiektach. Jeśli chcesz obserwować prototypy obiektów w celach edukacyjnych, być może lepiej byłoby zrobić to w jednej z tych przeglądarek.

+0

Nietypowy temat z czego? Możliwość wyświetlania łańcucha prototypów w debugerze to dwie strony tej samej monety. – Data

+2

@Data Off-topic dla przepełnienia stosu. Pytania dotyczące tematu dotyczą rozwiązywania praktycznych problemów programistycznych, a nie tego, dlaczego jakiś projektant biblioteki/produktu/języka, który nie ma tutaj konkretnej decyzji dotyczącej projektu.Nie wiem, co próbujesz powiedzieć z twoją analogią "dwóch stron tej samej monety". Wygląda na to, że nazwałeś tylko jedną stronę. – JLRishe

+0

Teraz rozumiem, że jest to kwestia Chrome, więc moje złe, ponieważ nie sprawdzam FF, ale kwestionowanie ważności zakresu mojego OP wydaje się nierozsądne; czy istnieje schemat blokowy, który powinienem zastosować, aby ustalić, czy wolno mi zadać pytanie? – Data