2016-12-21 2 views
1

Код прост.Почему Chrome рассматривает прототип объекта, ссылочным типом которого является Date как «Object {}», а не «Date {}»?

var now = new Date(); 
console.log(now.__proto__); 
console.log(now.__proto__.__proto__); 
console.log(now.__proto__.__proto__.__proto__); 

В консоли Chrome результат показан как снимок экрана.

enter image description here

Результат кажется правильным в консоли Node.js.

enter image description here

Почему не now.\__proto\__ возвращение Date {} в консоли Chrome?

+1

Нет никаких спецификаций для вывода консоли. – Pointy

+0

Какие версии Chrome/Node вы используете точно? – Bergi

ответ

3

Это просто рендеринг, для которого нет спецификации.

Узел делает больше вычислений, чтобы вернуть имя объекта constructor объекта, когда это возможно.

Если вы хотите увидеть его в источнике, немного утомительно читать, потому что существует много разных случаев, но это в основном в formatValue function, который вызывается util.inspect.

+0

Спасибо, Денис. – Box