2015-09-07 69 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

相关问题