JavaScript для ограничения строки числом дискретных значений - PullRequest
7 голосов
/ 03 февраля 2012

В C # я мог бы использовать перечисление.

В JavaScript как я могу ограничить значение набором дискретных значений идиоматически?

Ответы [ 3 ]

7 голосов
/ 03 февраля 2012

Иногда мы определяем переменную в классе JS 'Enumerations' по следующим строкам:

var Sex = {
    Male: 1,
    Female: 2
};

И затем ссылаемся на нее, как перечисление C #.

0 голосов
/ 03 февраля 2012

В JavaScript нет типа перечисления. Вы можете, однако, обернуть объект с помощью метода get и setter, как

var value = (function() {
   var val;
   return {
      'setVal': function( v ) {
                   if ( v in [ listOfEnums ] ) {
                       val = v;
                   } else {
                       throw 'value is not in enumeration';
                   }
                },
      'getVal': function() { return val; }
   };
 })();
0 голосов
/ 03 февраля 2012

В принципе, вы не можете.

В JavaScript не существует строгой типизации, поэтому невозможно ограничить входные параметры конкретным типом или набором значений.

...