让函数“返回”超级函数?

时间:2010-10-13 13:04:51

标签: javascript function return super

给出以下代码:

function two() {
    return "success";
}

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

如果通过调用函数one()来测试代码,则总会出现“失败”。

问题是,如何只通过调用函数two()来返回函数one()中的“success”?

这甚至可能吗?

此致

4 个答案:

答案 0 :(得分:6)

function one() {
   return two();
}

答案 1 :(得分:6)

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

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

答案 2 :(得分:3)

你可以使用try-catch Block,如果你的函数一个预期可能的非本地返回以及函数二这样使用异常:

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


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

,我相信。

答案 3 :(得分:2)

function one() {    
    return two();
}