2013-05-04 105 views
0

我在JavaScript中有幾個函數,其結果我想在另一個函數的if語句中使用。如何在一個主函數中調用2個子函數

我的問題是,只有第一個列出的子功能似乎返回結果。當我交換函數的順序時,我仍然只從第一個列出的子函數中得到一個返回結果。

我是初學者,並不是所有那些熟悉函數的人。看我下面的例子。請具體說明任何答案。

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; 
    } 
    } 
} 

回答

2

您不能從一個函數返回兩個值。所以,你的代碼應該是

function main(a){ 
if(functone(x)!="true") 
    {return false;} else 
    {if(functtwo(y)!="true") 
     {return false;} else {return true;} 
    } 
} 
+0

@acdcjunior謝謝:) – imulsion 2013-05-04 07:30:20

+0

謝謝,這有幫助。 – user2337745 2013-05-04 08:20:42

+0

@ user2337745在這種情況下,請考慮接受我的回答:) – imulsion 2013-05-04 08:37:58

0

似乎要只想要回true只有兩個調用的函數做。

這方面的一個典型模式是:

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

注意,在這種情況下functwo被稱爲如果funcone結果是false(或更嚴格的「falsey」,即還包括null0),因爲&&運營商是所謂的短路運營商。如果可以直接從左側操作數確定操作結果,則不評估右側操作數。

如果您想要functwo被調用,而不管funcone的結果如何,則用位運算符&代替&&運算符。

請注意,您的funcXXX函數應該(如此函數)返回布爾值truefalse,而不是字符串"true"

+0

謝謝,這是很好的知道和幫助。 – user2337745 2013-05-04 08:21:01

相關問題