2015-09-07 54 views
-2

我有這樣的功能:爲什麼我的返回值變得不確定?

function getStartDate(dateToTest) { 
    var dateToUse; 
    // The function here doesn't matter. I get the same result even if I use "if (1 != 1)". 
    if (!isAcceptableDate(dateToTest)) { 
     dateToTest = dateToTest.addDays(1); 
     getStartDate(dateToTest); 
    } 
    else { 
     dateToUse = dateToTest; 
     // It's not undefined here....... 
     console.log(dateToUse); 
     return dateToUse; 
    } 
} 

dateToUse值是罰款在console.log這個函數的結尾。然而,當它到達這個功能,它突然變得不確定:

function getDates(startDate) { 
    console.log(startDate); 
    // Do a bunch of other stuff. 
} 

這裏是我打電話是這個東西:

var baseDate = new Date(); 
var adjustDate = getStartDate(baseDate); 
var dateArray = getDates(adjustDate); 

爲什麼我用在結束一個完全有效的數值變量一個函數的函數在被另一個函數調用時會失去它的值嗎?

+5

沒有'第一的兩個分支的return'聲明。 – Thilo

+0

爲了努力爲未來制定更好更有用的問題,有人能指出可能使這個問題陷入兩次低估的事情嗎?我覺得有證據表明研究和努力澄清。只是想改善。謝謝! – mrcoulson

回答

2

getStartDate功能添加回報關鍵詞中

 return getStartDate(dateToTest); 
+0

我認爲就是這樣。運行一個或兩個測試... – mrcoulson

相關問題