什么会返回新的Date(DateObject)?

时间:2015-04-06 19:32:41

标签: javascript date

var DateObj = new Date(dateString); var Date = new Date(DateObj);

实际上是什么日期?它仍然是这样的约会对象吗?

我刚刚在我正在研究的项目中看到了这个代码,所以我很好奇它实际上做了什么。另外,我不会这样做,但我想知道为什么不这样做?

2 个答案:

答案 0 :(得分:0)

new Date(dateString);

将返回日期对象http://www.w3schools.com/jsref/jsref_obj_date.asp

的实例
new Date(DateObj)

返回日期对象

现在,您的Date变量将设置为Date对象的实例。在此范围内,您现在可以有效地覆盖日期对象。

不要这样做。

答案 1 :(得分:0)

  

实际上是什么日期?它仍然是这样的日期对象吗?

使用instanceof运算符检查非常简单:

var DateObj = new Date();
var DateObj2 = new Date(DateObj);

console.log(DateObj2 instanceof Date); // true

所以简短的回答是肯定的,它将是Date实例。

更长的答案。如果您对将Date对象传递给new Date构造函数时究竟发生了什么感兴趣,则需要参考ECMAScript规范。

15.9.3.2 new Date(value)节描述了行为:

  1. v ToPrimitive value )。
  2. 因此算法的第一步要求将传递的值转换为原始值。对于Object类型(如Date),原始值为"default value for the Object"。最后,对于Date对象,valueOftoString方法都返回一个数字 - current timestamp