5

Когда я создаю пустой объект:Почему я не могу просматривать __proto__ при создании объекта?

var o = {}; 

Почему я не могу просмотреть объект «__proto __», когда я создаю новый объект, но я могу, когда я добавить функцию?

enter image description here


Edit: Для полноты, чтобы создать действительно пустой объект (не прототипичный тяг), мы могли бы сделать:

var o = Object.create(null); 

Но для целей этого вопроса, я Используйте синтаксис o = {}.


Edit 2: This shows the prototype linkage при создании объектного, так __ в __proto находятся там, но я не могу просмотреть их в отладчик, если я не добавить объект функции.

enter image description here


Edit 3: Он работает в Firefox:

enter image description here

+3

Почему создатели этого конкретного отладчика (который вы не назвали) реализуете свою консоль так? Кто знает? Возможно, они полагали, что имеет смысл сделать объект расширяемым, когда он обладает свойствами. – JLRishe

+0

Я использую Google chrome Версия 40.0.2214.115 m – Data

+1

Вы можете просмотреть его. Тип o .__ proto__ - вы не получите неопределенный. Связано ли это с реальной трудностью, с которой вы сталкиваетесь? –

ответ

2

Кто знает? Похоже, это дизайнерское решение со стороны исполнителей Chrome debugger. Если кто-то здесь не связан с процессом принятия решений, я думаю, что этот вопрос не соответствует теме.

Возможно, они полагали, что вам не нужно расширять объекты, если у них нет методов.

И IE, и Firefox отображают свойство __proto__ в своей консоли даже на пустых объектах. Если вы хотите наблюдать прототипы объектов для учебных целей, возможно, было бы лучше сделать это в одном из этих браузеров.

+0

Вне темы из чего? Возможность просматривать цепочку прототипов в отладчике - это две стороны одной и той же монеты. – Data

+2

@Data Off-topic для переполнения стека. Вопросы по теме касаются того, как решать проблемы практического программирования, а не о том, почему какой-то разработчик библиотеки/продукта/языка, которого здесь нет, принял конкретное дизайнерское решение.Я не знаю, что вы пытаетесь сказать по аналогии с «двумя сторонами той же монеты». Кажется, вы только назвали одну сторону. – JLRishe

+0

Теперь я понимаю, что это проблема Chrome, поэтому мне плохо для того, чтобы не проверять FF, но вопрос о действительности сферы моего OP кажется необоснованным; есть ли блок-схема, которой я должен следовать, чтобы выяснить, разрешено ли мне задавать вопрос? – Data

Смежные вопросы