在Javascript中调用可变参数函数内的可变参数函数?

Tei*_*eiv 7 javascript function variadic

我有两个函数a()和b(),两者都是可变函数,让我说当我调用函数a()时这样:

a(arg0, arg1, arg2, arg3, ...., argn);
Run Code Online (Sandbox Code Playgroud)

然后函数b()也将在a()中调用,但是在()的参数列表中没有第一个参数"arg0":

b(arg1, arg2, arg3, ...., argn);
Run Code Online (Sandbox Code Playgroud)

有什么办法吗?

Ada*_*ght 22

每个JavaScript function都只是另一个"对象"(JavaScript意义上的对象),并附带一个apply方法(参见Mozilla的文档).你可以这样做......

b = function(some, parameter, list) { ... }

a = function(some, longer, parameter, list)
{
   // ... Do some work...

   // Convert the arguments object into an array, throwing away the first element
   var args = Array.prototype.slice.call(arguments, 1);

   // Call b with the remaining arguments and current "this"
   b.apply(this, args);
}
Run Code Online (Sandbox Code Playgroud)