<script Language="JavaScript"> //第一个参数值. function test(a,b,c,d){ alert(arguments[0]); } //arguments[0]实际上就是a,同理,arguments[1]就是b,依次c,d </script>
<script Language="JavaScript"> { function function_Name(exp1,exp2,exp3,exp4) { var umber=""; umber=arguments.length; alert(umber); } function_Name('a','b','c','d'); 都可以调用 // function_Name("a","b","c","d"); 都可以调用 } </script>
1. En JavaScript, l'objet arguments est un objet spécial. Il s'agit en fait d'une propriété intégrée de la fonction actuelle. arguments est très similaire à Array, mais n’est pas réellement une instance de Array. Cela peut être confirmé par le code suivant (bien sûr, en fait, dans la fonction funcArg, il n'est pas nécessaire d'écrire funcArg.arguments lors de l'appel d'arguments, il suffit d'écrire directement les arguments).
Array.prototype.testArg = "test"; function funcArg() { alert(funcArg.arguments.testArg); alert(funcArg.arguments[0]); } alert(new Array().testArg); // result: "test" funcArg(10); // result: "undefined" "10"
2. La longueur de l'objet arguments est déterminée par le nombre de paramètres réels plutôt que par le nombre de paramètres formels. Les paramètres formels sont des variables qui sont rouvertes dans l'espace mémoire de la fonction, mais elles ne chevauchent pas l'espace mémoire de l'objet arguments. Lorsque les arguments et les valeurs existent, les deux valeurs sont synchronisées, mais lorsque l'une d'elles n'a aucune valeur, la valeur ne sera pas synchronisée pour ce cas sans valeur. Le code suivant peut être vérifié.
function f(a, b, c){ alert(arguments.length); // result: "2" a = 100; alert(arguments[0]); // result: "100" arguments[0] = "qqyumidi"; alert(a); // result: "qqyumidi" alert(c); // result: "undefined" c = 2012; alert(arguments[2]); // result: "undefined" } f(1, 2);
3. D'après les caractéristiques de déclaration et d'appel des fonctions en JavaScript, on peut voir que les fonctions en JavaScript ne peuvent pas être surchargées.
Selon la base de surcharge dans d'autres langages : "La valeur de retour de la fonction est différente ou le nombre de paramètres formels est différent", nous pouvons tirer la conclusion ci-dessus :
Premièrement : La déclaration de la fonction Javascript n'est pas Le type de valeur de retour ;
Deuxièmement : à proprement parler, le nombre de paramètres formels en JavaScript sert uniquement à faciliter les opérations sur les variables dans les fonctions. En fait, les paramètres réels sont déjà stockés dans les arguments. objet.
De plus, comprenons en profondeur pourquoi les fonctions en JavaScript ne peuvent pas être surchargées à partir de la fonction JavaScript elle-même : en JavaScript, les fonctions sont en fait des objets, et le nom de la fonction est une référence à la fonction, ou le nom de la fonction lui-même est une variable. Pour la déclaration de fonction et l'expression de fonction présentées ci-dessous, la signification est la même que ci-dessus (sans tenir compte de la différence entre la déclaration de fonction et l'expression de fonction), ce qui nous est très utile pour comprendre la fonctionnalité selon laquelle les fonctions en JavaScript ne peuvent pas être surchargées.
function f(a){ return a + 10; } function f(a){ return a - 10; } // 在不考虑函数声明与函数表达式区别的前提下,其等价于如下 var f = function(a){ return a + 10; } var f = function(a){ return a - 10; }
4. Il y a un attribut très utile dans l'objet arguments : l'appelé. arguments.callee renvoie la référence de fonction actuelle dans laquelle réside cet objet arguments. Il est recommandé d'utiliser arguments.callee au lieu du nom de fonction lui-même lors de l'utilisation d'appels de fonction récursifs.
est le suivant :
function count(a){ if(a==1){ return 1; } return a + arguments.callee(--a); } var mm = count(10); alert(mm);
Pour plus d'exemples d'utilisation d'arguments javascript et d'articles connexes, veuillez faire attention au site Web PHP chinois !