0

我在 JavaScript 中有几个函数,我想if在另一个函数的语句中使用它们的结果。

我的问题是只有第一个列出的子函数似乎正在返回结果。当我交换函数的顺序时,我仍然只能从首先列出的子函数中获得返回结果。

我是一个初学者,对函数还不是很熟悉。请参阅下面的示例。请具体回答任何问题。

function main(a) {
  return functone(x);  // name of function is actually "functone" for this example
  return functtwo(y);  // name of function is actually "functtwo" for this example

  if(functone(x)!="true") {
    return false;
  } else {
    if(functtwo(y)!="true) {
      return false;
    } else {
      return true;
    }
  }
}
4

2 回答 2

2

您不能从一个函数返回两个值。所以你的代码应该是

function main(a){
if(functone(x)!="true")
  {return false;} else 
     {if(functtwo(y)!="true")
         {return false;} else {return true;}
     }
}
于 2013-05-04T07:28:48.150 回答
0

看来您只想在两个被调用函数都返回true情况下才返回。

一个典型的模式是:

function main(a) {
    return functone(x) && functwo(y);
}

请注意,在这种情况下,只有在is (或更严格地“错误”,即也包括or )的结果时才会调用functwo,因为运算符是所谓的短路运算符。如果运算结果可以直接从左侧操作数确定,则不计算右侧操作数。funconefalsenull0&&

如果您想functwo不管结果如何都被调用,则将运算符funcone替换&&为按位运算&符。

请注意,您的funcXXX函数应该(像这个函数一样)返回属性布尔值trueor false,而不是 string "true"

于 2013-05-04T07:43:22.073 回答