Maison > Article > interface Web > Comment puis-je transmettre un nombre variable d’arguments aux fonctions JavaScript ?
JavaScript offre une flexibilité dans la transmission d'arguments aux fonctions, y compris la possibilité d'envoyer un nombre variable d'arguments à partir d'un tableau.
Comme Python, JavaScript a un objet arguments spécial qui représente tous les arguments passés à une fonction. Cet objet contient chaque argument en tant que propriété indexable. Par exemple :
function func() { console.log(arguments.length); for (arg in arguments) console.log(arg); } func('a', 'b', 'c', 'd'); // prints 4 and 'a', 'b', 'c', 'd'
Cependant, passer un tableau directement à une fonction en tant qu'arguments n'obtiendra pas le résultat souhaité. Au lieu de cela, le tableau lui-même sera traité comme un seul argument. Pour transmettre un tableau en tant qu'arguments individuels, vous pouvez utiliser la méthode apply() :
var arr = ['a', 'b', 'c']; function func() { console.log(this); // 'test' console.log(arguments.length); // 3 for (var i = 0; i < arguments.length; i++) { console.log(arguments[i]); } } func.apply('test', arr);
Cela affichera 'test', 3, 'a', 'b' et 'c'.
Depuis ES6, JavaScript a introduit la syntaxe spread (...), qui fournit une manière plus concise d'obtenir le même résultat :
func(...arr);
Cela développera les éléments de arr en arguments individuels transmis à la fonction.
Vous pouvez également combiner des paramètres nommés avec la syntaxe spread pour spécifier que certains arguments doit être traité comme un tableau :
function func(first, second, ...theRest) { //... }
JavaScript permet de transmettre un nombre variable d'arguments aux fonctions via l'objet arguments ou, dans ES6 et versions ultérieures, en utilisant la syntaxe spread. Cette flexibilité permet une variété de cas d'utilisation, tels que la création de fonctions génériques capables de gérer un nombre arbitraire d'entrées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!