繁体   English   中英

为什么Chrome开发工具将日期__proto__显示为无效日期?

[英]Why does Chrome Dev Tool show a dates __proto__ as Invalid Date?

我知道__proto__已过时(或不是标准的一部分),但我仍然很好奇,当我查看__proto__值时,它说无效日期是什么意思。

var myDate = new Date(1331869050000);

“我仍然对表示无效日期的含义感到好奇”

这只是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(代号Harmony)的当前工作草案中。

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

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

如果您想进一步调查,请看这篇文章。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM