2017-04-20 26 views
0

變異對象在這種情況下,我不能這樣做創建和一行

let firstDate = new Date().setDate(1) // returns a number, not the mutated Date object 

我要做

let firstDate = new Date(); 
firstDate.setDate(1); 

我可以寫在後面更優雅的方式?

+0

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date –

+1

'( firstDate = new Date())。setDate(1)'是創建對象的一行代碼,保存對它的引用,*和*對它進行變異,但只有在已經聲明'firstDate'的情況下才有效。 (但是既然你已經使用了'let',可以假定你打算在初始聲明後重新分配它,所以...) – nnnnnn

回答

2
(new Date()).setDate(1) 
^^^^^^^^^^^ <-- reference to this gets lost. 

您失去對您創建的對象的引用。如果你真的想無論如何做,試試這個:

var date = new Date(new Date().setDate(1)) 
 
console.log(date);

+1

這不是這個問題的基本問題嗎? – nnnnnn

+0

@nnnnnn是的,我只是編輯帖子以添加工作解決方案 – mehulmpt