JavaScript: специальная переменная / аргумент?

#javascript #function #variables #arguments

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

Я знаю, что вы не можете создать переключатели, которые делают это, и я искал это в Интернете, но не получил ответа о том, как называется этот тип и возможно ли это. Может быть, есть обходной путь?

Помощь очень ценится.

С наилучшими пожеланиями, Кристиан

Комментарии:

1. Ну, вы всегда можете создать глобальную переменную var MYCONSTANT = 1; var MYCONSTANT2 = 2; а затем ссылаться на них в аргументах switch и input

2. Или еще лучше … var SOME_CONSTANT_TYPE = { style_one:1, style_two:2, style_three:3 }; затем вызовите myFunction(‘строка’,SOME_CONSTANT_TYPE.style_one)

Ответ №1:

Я не понимаю, в чем здесь ваша конкретная проблема. Они выглядят как обычные const, которые можно легко создать как глобальные переменные в 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:

ПОПРОБУЙТЕ это:

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

Ответ №3:

то, что вы хотите, является эквивалентом javascript для enum .

По сути, перечисление — это целое число с именем.

в javascript это можно было бы сделать следующим образом:

 var enumObj = new Object();

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

document.write(enumObj.type.about);

   // outputs : 2
  

Ответ №4:

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

затем вызовите

 myFunction('string',SOME_CONSTANT_TYPE.style_one)