2015-04-06 30 views
-2

var DateObj = new Date(dateString); var Date = new Date(DateObj);它會返回新的Date(DateObject)?

究竟是什麼日期?它仍然是這樣的日期對象嗎?

我剛剛在我正在開發的項目中看到這段代碼,所以我很好奇它實際上做了什麼。另外,我不會這樣做,但我想知道爲什麼不這樣做?

+0

使用[typeof](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof)。 – Xufox

回答

0
new Date(dateString); 

會返回一個Date對象http://www.w3schools.com/jsref/jsref_obj_date.asp

new Date(DateObj) 

返回Date對象

您的日期變量,將被設置爲Date對象實例的實例。在此範圍內,您現在可以有效地重寫Date對象。

不這樣做。

+0

是的,我認爲這也不是很好,但是我在某個地方看到了,我只是想知道不這樣做的原因? – CodTango

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. vToPrimitive)。

所以算法的第一步需要將傳遞的值轉換爲原始值。對於對象類型(如Date)原始值是"default value for the Object"。最後,對於Date對象,valueOftoString方法返回一個數字 - current timestamp

相關問題