JavaScript:一个特殊的变量/参数?

时间:2011-04-29 13:45:25

标签: javascript function variables arguments

我一直在寻找可以做到这一点的特殊论证和/或变量,即:

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

我知道你不能制造那样做的开关,而且我一直在互联网上寻找它,但没有回答这种类型被称为什么或者是否可能。也许有一种解决方法?

帮助很多。

最诚挚的问候, 基督教

4 个答案:

答案 0 :(得分: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');

答案 1 :(得分:1)

我不明白你的具体问题是什么。这些看起来像常规的consts,可以很容易地在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

答案 2 :(得分:0)

你想要的是javascript等同于enum

基本上,枚举是一个带名字的整数。

在javascript中,可以按如下方式完成:

var enumObj = new Object();

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

document.write(enumObj.type.about);

   // outputs : 2

答案 3 :(得分:0)

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

然后致电

myFunction('string',SOME_CONSTANT_TYPE.style_one)