2014-01-19 106 views
0

這是我的文檔的一部分:這是在javascript中調用函數的正確方法嗎?

function MyFunction() { 
    var x="" 

    if (x=1) { 
     OnBtnPbDemo_SwitchChn1(1); //This is a function 
    } else { 
     OnBtnPbDemo_SwitchChn1(0); //This is another function 
    } 
} 

我想知道這是否是調用條件內的功能以正確的方式。
非常感謝。

+0

調用外部或內部條件函數沒有區別。然而,你的代碼還有其他一些問題:1)你將* 1分配給'x',你不把*'x'與'1'比較。 2)因爲你給它分配了一個空字符串,'x'永遠不會是'1'。假設你從別的地方得到'x',你可以省略整個'if'語句並使用條件運算符:'OnBtnPbDemo_SwitchChn1(x == 1?1:0);'。 –

+3

@Ilan:你說得對,沒有意義,但你不能僅僅假設OP的代碼是不同的。你可能已經編輯了OP的問題! –

+0

您只調用一個函數,參數根據條件的結果而不同。 –

回答

1

不能完全確定你的意思打電話的「正確」的方式是什麼,但只要只要他們」你可以調用函數在範圍內可用。

實際上,你可以縮短你寫什麼,這太:

function MyFunction() { 
    var x = ""; 
    OnBtnPbDemo_SwitchChn1(x === 1 ? 1 : 0); 
} 

除非你真的改變你的函數內部的變量x但是,它永遠不會與1作爲帕拉姆運行。

1

是的,無論你在哪裏調用它,調用函數都是一樣的。

+0

這是一條評論,而不是答案。我知道你不能評論,但儘管如此,儘量發佈適當的答案。發表評論的權利即將到來! – Tomalak

+1

???什麼不是對此的答案? –

+0

答案應該包含代碼和解釋。細長的「是」來克服最小字符數不會削減它。 (另外OP代碼至少有三個問題需要指出。) – Tomalak

1

您需要if條件下使用==,而不是使用=

if (x==1) { 

,而不是

if (x=1) { 

,如果你要調用相同功能的不同x值,試試這個

function MyFunction() { 
     var x = 1; 
     OnBtnPbDemo_SwitchChn1(x); //you can pass the x value directly to that function.   
    } 

,如果你要調用不同功能的不同x值,試試這個

function MyFunction() { 
    var x=""; 
     if (x==1) { 
      OnBtnPbDemo_SwitchChn1(1); //This is a function 
     } else { 
      OnBtnPbDemo_SwitchChn1_another(0); //This is another function 
     } 
    } 
+0

這是一條評論,而不是對問題的回答。 –

+0

@Ash Burlaczenko這是錯誤之一,OP需要改變這一點。 –

+0

主要問題還沒有回答 –

-2

您正在調用兩次相同的函數,而只是調用函數一次,其值爲1/0。

function MyFunction() { 
//Check and find value of x 
if(x=="somevalue") //true condition 
{ 
    x=1; 
} 
else{ 
x=0; 
} 
OnBtnPbDemo_SwitchChn1(x); 
} 
+0

僅供參考,您的代碼有語法錯誤,並且是非常規格式。 –

+1

此外它只是明顯錯誤。 –

相關問題