ES2015では関数に可変長引数が指定できるようになっています。
可変長な引数をとる関数の定義
可変長な引数については...
を用いて以下のように指定することができます。
function hoge(foo, ...bar) { console.log(foo); console.log(bar); }
このとき、可変長な引数を受けるbar
には配列の形で可変長引数が渡されることになります。
また、可変長引数以外の引数を取る関数の場合には、可変長引数は必ず最後になる必要があります。
このへんは他の言語と同様です。
可変長な引数を展開する
可変長な引数は受け取られて以降は配列そのものなので、可変長引数をとる関数→可変長引数を取る関数というかたちで引数を引き回す場合には、別途展開が必要です。
この展開についても、同様に...
を用いることで以下のように記述できます。
function fuga(...fizz) { console.log(fizz); } function hoge(foo, ...bar) { fuga(...bar); }