为什么Chrome会将引用types为Date的对象的原型视为“Object {}”,而不是“Date {}”?

代码很简单。

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

在Chrome的控制台中,结果显示为屏幕截图。

在这里输入图像说明

结果在Node.js的控制台中似乎是正确的。

在这里输入图像说明

为什么不now.\__proto\__在Chrome的控制台中返回Date {}

这只是一个渲染,没有规范。

节点做更多的计算,只要有可能就返回对象constructor的名字。

如果你想在源代码中看到它,读取有点繁琐,因为有很多不同的情况,但它基本上是由util.inspect调用的formatValue函数 。