我知道__proto__
已被弃用(或者不是标准的一部分)以及所有这些,但我仍然很好奇当我看到__proto__
值时它的无效日期意味着什么的..
var myDate = new Date(1331869050000);
答案 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实例的原型没有定义的值。只有实例有值。您在实例化它时定义它。