JavaScript: специальная переменная / аргумент? - PullRequest
0 голосов
/ 29 апреля 2011

Я искал специальный аргумент и / или переменную, которая может сделать это, например:

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 ]

1 голос
/ 29 апреля 2011

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

Пример

1 голос
/ 29 апреля 2011

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

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 голосов
/ 29 апреля 2011
var SOME_CONSTANT_TYPE = { style_one:1, style_two:2, style_three:3 }; 

затем позвоните

myFunction('string',SOME_CONSTANT_TYPE.style_one)
0 голосов
/ 29 апреля 2011

То, что вы хотите, это эквивалент javascript enum.

По сути, enum - это целое число с именем.

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

var enumObj = new Object();

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

document.write(enumObj.type.about);

   // outputs : 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...