我有这个功能:
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);
为什么我的变量在一个函数的末尾具有完全有效的值,在另一个函数调用时会失去其值?
答案 0 :(得分:2)
在 getStartDate 之前添加返回关键字
return getStartDate(dateToTest);