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

社会主义新天地 提交于 2019-11-27 04:03:20

问题


I know __proto__ is deprecated (or not part of the standard) and all that but I'm still curious as to what it means when it says Invalid Date when I look at the __proto__ value of..

var myDate = new Date(1331869050000);

回答1:


"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.



回答2:


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.




回答3:


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



来源:https://stackoverflow.com/questions/9725299/why-does-chrome-dev-tool-show-a-dates-proto-as-invalid-date

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