function foo(x) {
console.log(arguments)
} //foo(1) prints [1]
mais
var bar = x => console.log(arguments)
donne l'erreur suivante lorsqu'il est invoqué de la même manière:
Uncaught ReferenceError: arguments is not defined
Les fonctions fléchées n'ont pas cela car l'objet arguments
, semblable à un tableau, était une solution de contournement que ES6 a résolue avec un paramètre rest
:
var bar = (...arguments) => console.log(arguments);
arguments
n'est en aucun cas réservé ici mais simplement choisi. Vous pouvez l'appeler comme vous le souhaitez et il peut être combiné avec des paramètres normaux:
var test = (one, two, ...rest) => [one, two, rest];
Vous pouvez même aller dans l'autre sens, illustré par cette fantaisie s'appliquent:
var fapply = (fun, args) => fun(...args);