我一直在寻找可以做到这一点的特殊论证和/或变量,即:
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);
我知道你不能制造那样做的开关,而且我一直在互联网上寻找它,但没有回答这种类型被称为什么或者是否可能。也许有一种解决方法?
帮助很多。
最诚挚的问候, 基督教
答案 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);
答案 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)