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

Jér*_*nge 4 javascript arguments

我的问题最好用JsFiddle上提供的一个小代码示例来说明:

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

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

a(33,445,67);
Run Code Online (Sandbox Code Playgroud)

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

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

ade*_*neo 6

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

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

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

a(33,445,67);
Run Code Online (Sandbox Code Playgroud)

小提琴