使用收到的“参数”问题使用“参数”调用javascript函数

时间:2014-03-27 09:52:24

标签: javascript arguments

我的问题最好通过JsFiddle上提供的小代码示例进行说明:

function a() {
    alert("a: " + arguments.length);
    b(arguments);
}

function b() {
    alert("b: " + arguments.length);
}

a(33,445,67);

我有一个用可变数量的参数调用的函数a,我想用这些参数调用b。不幸的是,当我运行上面的代码时,它分别显示3和1,而不是3和3。

如何使用b中收到的所有参数调用a

1 个答案:

答案 0 :(得分:6)

arguments是一个类似于数组的对象,对应于传递给函数的参数,因此当调用b()时,只有一个参数,即数组。
您可以使用apply(),它接受​​参数作为数组

function a() {
    alert("a: " + arguments.length);
    b.apply(undefined, arguments);
}

function b() {
    alert("b: " + arguments.length);
}

a(33,445,67);

FIDDLE