function foo(x) {
console.log(arguments)
} //foo(1) prints [1]
しかし
var bar = x => console.log(arguments)
同じ方法で呼び出されると、次のエラーが発生します。
Uncaught ReferenceError: arguments is not defined
矢印関数には、arguments
配列のようなオブジェクトがそもそも回避策であったため、これはありません。ES6はrest
パラメーターで解決しました。
var bar = (...arguments) => console.log(arguments);
arguments
はここでは決して予約されておらず、選択されただけです。好きなように呼び出すことができ、通常のパラメーターと組み合わせることができます。
var test = (one, two, ...rest) => [one, two, rest];
この空想によって示されるように、あなたは他の方法に行くことさえできます:
var fapply = (fun, args) => fun(...args);