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

JavaScript: A special variable/argument?

本文关键字:变量 参数 一个 JavaScript      更新时间:2023-09-26

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

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

我知道你不能做出这样的开关,我一直在互联网上寻找它,但没有回答这种类型的开关叫什么,也没有回答它是否可能。也许有变通办法?

大家都很关心帮助。

谨致问候,Christian

我不知道你的具体问题是什么。这些看起来像是正则常量,可以很容易地在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);

示例

尝试这个:

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

您想要的是相当于enum的javascript。

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

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

var enumObj = new Object();
enumObj.type = {help:1, about:2, quit:3}
document.write(enumObj.type.about);
   // outputs : 2
var SOME_CONSTANT_TYPE = { style_one:1, style_two:2, style_three:3 }; 

然后呼叫

myFunction('string',SOME_CONSTANT_TYPE.style_one)