为什么我的返回值变得不确定?

时间:2015-09-07 06:18:09

标签: javascript

我有这个功能:

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);

为什么我的变量在一个函数的末尾具有完全有效的值,在另一个函数调用时会失去其值?

1 个答案:

答案 0 :(得分:2)

getStartDate 之前添加返回关键字

     return getStartDate(dateToTest);