Tout en js est un objet, même les fonctions sont des objets. Le nom de la fonction est en fait une variable qui fait référence à l'objet défini par la fonction.
1. Que sont les arguments ?
Les arguments de ce corps de fonction sont très spéciaux. Ils sont en fait un objet de type tableau intégré de la fonction. Vous pouvez utiliser le [i] et le .length du tableau.
2. Quelle est la fonction ?
La syntaxe js ne prend pas en charge la surcharge ! Cependant, l'objet arguments peut être utilisé pour simuler l'effet de surcharge.
objet arguments : au sein de l'objet fonction, un objet de type tableau est automatiquement créé pour recevoir toutes les valeurs des paramètres.
arguments[i] : obtenez la valeur du paramètre transmise avec l'indice i
arguments.length : obtenez le nombre de paramètres transmis !
Surcharge :
Plusieurs fonctions avec le même nom de fonction et des listes de paramètres différentes peuvent être définies dans le programme
L'appelant n'a pas besoin de distinguer les paramètres. de chaque fonction.
Lors de l'exécution, le programme détermine automatiquement quelle fonction sélectionner pour l'exécution en fonction du nombre de paramètres transmis.
L'exemple est le suivant :
// 1、如果用户传入一个参数,求平方 function sum(a){ console.log(a*a); } //如果用户传入两个参数,就求和 function sum(a,b){ console.log(a+b); } sum(4); //? sum(4,5); //?
Dans l'exemple ci-dessus, l'intention initiale est de laisser la fonction sum() du même nom produire des résultats différents selon différents paramètres, mais sum est un nom de fonction et est essentiellement une variable. ,
La seconde écrasera la première, donc la réponse correcte ci-dessus est : NaN,9 Ce n'est donc évidemment pas le cas. possible.
Ce serait beaucoup plus simple si vous utilisiez des arguments.
Les deux exemples suivants :
//2、 function calc(){ //如果用户传入一个参数,求平方 if(arguments.length==1){ console.log(arguments[0]*arguments[0]); }else if(arguments.length==2){ //如果用户传入两个参数,就求和 console.log(arguments[0]+arguments[1]); } } calc(4); //16 calc(4,5); //9 /*3、无论用户传入几个数字,都可以求和*/ function add(){ //arguments:[] //遍历arguments中每个元素,并累加 for(var i=0,sum=0;i<arguments.length;sum+=arguments[i++]); return sum;//返回和 } console.log(add(1,2,3)); //6 console.log(add(1,2,3,4,5,6)); //21
C'est l'effet de JS utilisant la surcharge d'arguments. Une compréhension simple est la réutilisation d'une fonction.
arguments.length est déterminé par les paramètres réels, c'est-à-dire le nombre de paramètres dans l'appel de fonction !
Ce qui précède est la connaissance de l'objet arguments en Javascript introduite par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra. dans le temps. Je voudrais également vous remercier tous pour votre soutien au site Web PHP chinois !
Pour plus d'articles liés à l'objet arguments en Javascript, veuillez faire attention au site Web PHP chinois !