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

徘徊边缘 提交于 2019-11-27 11:44:30

"I'm still curious as to what it means when it says Invalid Date"

That's simply the toString value of the prototype object of the Date constructor function.


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

You can override it if you like...

Date.prototype.toString = function() { return "I like turtles." };

var myDate = new Date(1331869050000);
myDate.__proto__; // I like turtles.

A little off topic, but __proto__ is in the current working draft for the next version of ECMAScript, codename Harmony.

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

  • Added section B.3.1 with specifies __proto__ feature.
Ben Sewards

considering you made a new Date object, I wouldn't worry about it. The reason being, if you try this code:

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

This will determine that you are inheriting the Date objects methods and that in fact, Date IS defined.

If you would like further investigation, take a look at this post.

The prototype of a Date instance has no defined value. Only the instance has a value. You define it when you instantiate it.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!