3

给出以下代码:

function two() {
    return "success";
}

function one() {
    two();
    return "fail";
}

如果你通过调用函数 one() 来测试代码,你总是会得到“失败”。

问题是,如何仅通过调用函数二()在函数一()中返回“成功”?

这甚至可能吗?

问候

4

4 回答 4

6

您不能从用 Javascript(或许多其他语言,afaik)调用它的函数返回函数。您需要 one() 中的逻辑来做到这一点。例如:

 function one() {
     return two() || "fail";
 }
于 2010-10-13T13:09:43.020 回答
6
function one() {
   return two();
}
于 2010-10-13T13:07:27.493 回答
3

您可以使用 try-catch 块来做到这一点,如果您的函数一个预期可能的非本地返回以及像这样使用异常的函数二:

function two() {
  throw {isReturn : true, returnValue : "success"}
}


function one () {
  try {
    two()
  } catch(e) {
    if(e.isReturn) return e.returnValue;
  }
  return "fail";
 }

, 我相信。

于 2010-11-09T22:09:28.333 回答
2
function one() {    
    return two();
}
于 2010-10-13T13:09:12.277 回答