为什么Chrome开发工具将date__proto__显示为无效date?

我知道__proto__被弃用(或不是标准的一部分),所有,但我仍然好奇它是什么意思,当它说无效的date,当我看着__proto__值..

 var myDate = new Date(1331869050000); 

“我仍然好奇,它说什么时,它说无效的date”

这只是Date构造函数prototype对象的toString值。


 Date.prototype.toString(); // "Invalid Date" 

你可以重写它,如果你喜欢…

 Date.prototype.toString = function() { return "I like turtles." }; var myDate = new Date(1331869050000); myDate.__proto__; // I like turtles. 

一个小题目,但__proto__是在ECMAScript的下一个版本,代号和谐的当前工作草案。

http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts

  • 添加了指定__proto__特性的B.3.1节。

考虑到你做了一个新的Date对象,我不用担心。 原因是,如果你尝试这个代码:

 var myDate = new Date(1331869050000); alert(typeof myDate.getMonth != 'undefined') //true 

这将确定您正在inheritanceDate对象方法,并且实际上,Date被定义。

如果你想进一步调查,看看这个职位。

Date实例的原型没有定义的值。 只有实例有一个值。 您在实例化时定义它。