私は 2 つの関数 a() と b() を持っています。どちらも可変引数関数です。次のように関数 a() を呼び出すとします。
a(arg0, arg1, arg2, arg3, ...., argn);
次に、関数 b() が a() 内でも呼び出されますが、 a() の引数リストに最初の引数 "arg0" はありません。
b(arg1, arg2, arg3, ...., argn);
方法はありますか?
私は 2 つの関数 a() と b() を持っています。どちらも可変引数関数です。次のように関数 a() を呼び出すとします。
a(arg0, arg1, arg2, arg3, ...., argn);
次に、関数 b() が a() 内でも呼び出されますが、 a() の引数リストに最初の引数 "arg0" はありません。
b(arg1, arg2, arg3, ...., argn);
方法はありますか?
すべてのJavaScriptfunction
は、実際には単なる別の「オブジェクト」(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);
}