具有动态参数长度的函数

时间:2013-09-10 15:39:30

标签: javascript jquery eval signalr

我想调用javascript(signalR)函数。如果参数长度与预期一样长,它们只会响应!

尝试解决问题(eval()中的字符串是从数组长度生成的):

var ar = [1,2,3];

function test(a, b, c) {
    console.log("a:" + a);
    console.log("b:" + b);
    console.log("c:" + c);
}
test(eval("ar[0], ar[1], ar[2]"));

在这种情况下,b和c总是“未定义”......任何人都可以给我一个如何解决这个问题的提示吗?

我想给我的函数提供尽可能多的参数,因为我的数组很长(ar.length)。

谢谢:)

1 个答案:

答案 0 :(得分:1)

您可以使用.apply()

test.apply(window, ar )

然后在函数内部,您可以使用arguments来访问所有参数

function test(){
    for(var i = 0; i < arguments.length; i++){
        console.log(i + ':' + arguments[i])
    }
}