2011-08-10 103 views
0

這個問題很簡單。我希望能夠檢測變量是否爲假,並將其設置爲true,通常稱爲切換。切換變量槽功能

這裏是:

var hello = false 

function toggleSt(I, E) 
{ 
    if ((I == "activate") && (!E)) 
    { 
      E = !E 
      alert("activated") 
    } 
    else if ((I == "disable") && (E)) 
    { 
       E = !E 
       alert("disabled") 
    } 
} 

toggleSt("activate", hello) 

alert(hello) 

我粘貼上的jsfiddle代碼,

http://jsfiddle.net/kpDSr/

你好還是假的。

+1

'E'將**不是對'hello'的引用,它只會具有相同的值。改變'E'不會改變'hello'。 –

回答

1

菲利克斯是對的。嘗試:

var hello = false 

function toggleSt(I) 
{ 
    if ((I == "activate") && (!hello)) 
    { 
      hello = !hello; 
      alert("activated") 
    } 
    else if ((I == "disable") && (hello)) 
    { 
       hello = !hello 
       alert("disabled") 
    } 
} 

toggleSt("activate"); 

alert(hello) 
+0

但是這是硬編碼!任何可能的選擇? – Implosions

0

當您調用該函數時,您可以爲新的var E指定hello。所以在函數中你有新的參數E設置爲true/false。調用不帶參數的函數作爲hello,並使用hello作爲全局變量將按預期工作。

var hello = false 

function toggleSt(I) 
{ 
    if ((I == "activate") && (!hello)) 
    { 
      hello = !hello 
      alert("activated") 
    } 
    else if ((I == "disable") && (hello)) 
    { 
       hello = !hello 
       alert("disabled") 
    } 
} 

toggleSt("activate") 

alert(hello)