2017-03-17 31 views
0

發現這個代碼在傳統項目未能鏈式方法?

var d = new Date(); 
d.setFullYear(currentYear); 
d.setMonth(currentMonth); 
d.setDate(currentDay); 

d.setFullYear(currentYear).setMonth(currentMonth).setDate(currentDay)試圖鏈,但我得到了錯誤。任何更好的方式來重構上面的代碼?

回答

2

鏈接不是一個自我的目的,不需要重構這段代碼。

不過,如果你想縮短它,你可以使用all three parameters of setFullYear

var d = new Date(); 
d.setFullYear(currentYear, currentMonth, currentDay); 
0

你不能鏈,因爲這些函數返回的時間戳,而不是根本目的。

var currentYear = '2011', 
 
    currentMonth = '04', 
 
    currentDay = '20'; 
 

 
/********************************* 
 
* Supply All Values    * 
 
* Notice the "-1" on the month * 
 
*********************************/ 
 
var d = new Date(); 
 
d.setFullYear(currentYear,currentMonth-1,currentDay); 
 

 
console.log('Milliseconds since 1970:', d.setFullYear(currentYear,currentMonth-1,currentDay)); 
 
console.log('Locale:',''+d); 
 

 

 
/********************* 
 
* Default Day/Month * 
 
*********************/ 
 
var d = new Date(); 
 
d.setFullYear(currentYear); 
 

 
console.log('Default Month/Day:', ''+d);

當然,如果你打算將它們都在同一個函數,你不妨將它們設置在constructor

var currentYear = '2011', 
 
    currentMonth = '04', 
 
    currentDay = '20'; 
 

 
/********************************* 
 
* Supply All Values    * 
 
* Notice the "-1" on the month * 
 
*********************************/ 
 
var d = new Date(currentYear, currentMonth - 1, currentDay); 
 

 
console.log('Milliseconds since 1970:', new Date(currentYear, currentMonth - 1, currentDay)); 
 
console.log('Locale:', '' + d);

重要的是要注意的是在開始的月份,所以你必須從你期望的月份中減去一個。