为什么Chrome Dev Tool会将日期__proto__显示为无效日期?

时间:2012-03-15 17:49:11

标签: javascript google-chrome-devtools

我知道__proto__已被弃用(或者不是标准的一部分)以及所有这些,但我仍然很好奇当我看到__proto__值时它的无效日期意味着什么的..

var myDate = new Date(1331869050000);

3 个答案:

答案 0 :(得分:87)

  

“当它说无效日期时,我仍然很好奇它是什么意思”

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


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,代号为Harmony。

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

  
      
  • 添加了指定__proto__功能的B.3.1部分。
  •   

答案 1 :(得分:2)

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

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

这将确定您继承Date对象方法,并且实际上是Date IS定义。

如果您想进一步调查,请查看this帖子。

答案 2 :(得分:0)

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