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

Calling javascript function with 'arguments' using received 'arguments' issue

本文关键字:参数 问题 javascript 调用 使用 函数      更新时间:2023-09-26

我的问题最好用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。

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

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

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

小提琴