2011-04-29 47 views
0

我一直在尋找一個特殊的參數和/或變量,可以做到這一點,即:JavaScript:一個特殊的變量/參數?

function myFunction(arg1, arg2) { 
    switch(arg2) { 
     case FIRSTCHOICE: 
     // Code 
     break; 

     case SECONDCHOICE: 
     // Code 
     break; 
    } 
} 

和使用它作爲:

myFunction('String', FIRSTCHOICE); 

因此,例如,我會做不同類型的警報該輸出在不同風格的消息:

function myAlert(msg, type) { 
    switch(type) { 
     case STYLE_ONE: 
     alert("STYLE ONE: " + msg); 
     break; 

     case STYLE_TWO: 
     alert("STYLE TWO: *** " + msg + " ***"); 
    } 
} 

,並用它如下:

myAlert("Hello World", STYLE_ONE); 

myAlert("Hello World, again", STYLE_TWO); 

我知道你不能做,做的是交換機,並且我一直在四處尋找互聯網,但對什麼該類型稱爲或者如果它沒有答案是可能的。也許有一個解決方法?

幫助非常appriciated。

最好的問候, 基督教

+0

嘛,,你總是可以創建一個全局變量var MYCONSTANT = 1; var MYCONSTANT2 = 2;然後在開關和輸入參數中引用它們 – netbrain 2011-04-29 13:48:45

+1

或更好的是... var SOME_CONSTANT_TYPE = {style_one:1,style_two:2,style_three:3};然後調用myFunction('string',SOME_CONSTANT_TYPE.style_one) – netbrain 2011-04-29 13:51:51

回答

1

我沒有看到你的具體問題是什麼,在這裏。這些看起來像普通的常量,可以很容易地創建爲JavaScript中的全局變量。

var STYLE_ONE = 1; 
var STYLE_TWO = 2; 

function myAlert(msg, type) { 
    switch(type) { 
     case STYLE_ONE: 
     alert("STYLE ONE: " + msg); 
     break; 

     case STYLE_TWO: 
     alert("STYLE TWO: *** " + msg + " ***"); 
    } 
} 

myAlert("test", STYLE_TWO); 

Example

1

試試這個:

function myAlert(msg, type) { 
    switch(type) { 
     case 'STYLE_ONE': 
     alert("STYLE ONE: " + msg); 
     break; 

     case 'STYLE_TWO': 
     alert("STYLE TWO: *** " + msg + " ***"); 
    } 
} 

myAlert("Hello World", 'STYLE_TWO'); 
0

你想要什麼,是enum的JavaScript的等價物。

基本上,枚舉是一個帶名稱的整數。

在JavaScript中,可以這樣做如下:

var enumObj = new Object(); 

enumObj.type = {help:1, about:2, quit:3} 

document.write(enumObj.type.about); 

    // outputs : 2 
0
var SOME_CONSTANT_TYPE = { style_one:1, style_two:2, style_three:3 }; 

然後調用

myFunction('string',SOME_CONSTANT_TYPE.style_one)