如何在javascript中将数组对象转换为参数

时间:2014-11-06 10:51:42

标签: javascript arrays arguments

我有一个这样的课程:

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(...)

2 个答案:

答案 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)

使用Function.prototype.apply

var a = {};
Enum.apply(a, ["EAT","DRINK","SLEEP"]);

会给你:

{
  "EAT": 0,
  "DRINK": 1,
  "SLEEP": 2
}