我有一个这样的课程:
Enum = function() {
for (var i = 0, len = arguments.length; i < len; i++) {
var k= arguments[i];
this[k] = i;
}
Object.freeze(this);
};
要创建字符串枚举,通常我只需调用: var options = new Enum(“EAT”,“DRINK”,“SLEEP”); //很多参数
如果我有一个存储在变量中的参数数组。
Ex: var arg_array = ["EAT","DRINK","SLEEP"]
,
我怎么能把它传递给新的Enum(...)
答案 0 :(得分: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);
答案 1 :(得分:0)
var a = {};
Enum.apply(a, ["EAT","DRINK","SLEEP"]);
会给你:
{
"EAT": 0,
"DRINK": 1,
"SLEEP": 2
}