ES2015で可変長引数を取り扱う

ES2015では関数に可変長引数が指定できるようになっています。

可変長な引数をとる関数の定義

可変長な引数については...を用いて以下のように指定することができます。

function hoge(foo, ...bar) {
  console.log(foo);
  console.log(bar);
}

このとき、可変長な引数を受けるbarには配列の形で可変長引数が渡されることになります。 また、可変長引数以外の引数を取る関数の場合には、可変長引数は必ず最後になる必要があります。 このへんは他の言語と同様です。

可変長な引数を展開する

可変長な引数は受け取られて以降は配列そのものなので、可変長引数をとる関数→可変長引数を取る関数というかたちで引数を引き回す場合には、別途展開が必要です。

この展開についても、同様に...を用いることで以下のように記述できます。

function fuga(...fizz) {
 console.log(fizz);
}

function hoge(foo, ...bar) {
  fuga(...bar);
}

参考