2014-11-06 5 views
-1

У меня есть класс, как это:Как преобразовать массив объектов аргументы в JavaScript

Enum = function() { 
    for (var i = 0, len = arguments.length; i < len; i++) { 
     var k= arguments[i]; 
     this[k] = i; 
    } 
    Object.freeze(this); 
}; 

Чтобы создать перечисление строки, обычно я просто позвонить: параметры VAR = новый Enum («ЕСТ»,» Напиток», "СОН"); // many arguments

Если у меня есть массив аргументов, которые уже хранятся в переменной. Ex: var arg_array = ["EAT","DRINK","SLEEP"], как я мог передать его новый Enum (...)

ответ

0

Вы можете просто взять массив в качестве аргумента для конструкторы и использовать его, как вы делали, с массивом аргументов:

Enum = function(arr) { 
    if(arr){ 
     for (var i = 0, len = arr.length; i < len; i++) { 
      var k= arr[i]; 
      this[k] = i; 
     } 
    } 
    Object.freeze(this); 
}; 

затем просто передать массив при создании перечисления:

var options = new Enum(arg_array);