//La première valeur du paramètre
test de fonction (a,b,c,d){
alerte(arguments[0]);
}
//arguments[0] est en fait a. De la même manière, arguments[1] est b, suivi de c, d
.
{
Fonction function_Name(exp1,exp2,exp3,exp4)
{
var umber="";
umber=arguments.length;
alert(numéro);
>
function_Name('a','b','c','d');
en utilisant function_Name("a", "b", ", "d"); à appeler peuvent tous être appelés
>
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";
fonction funcArg() {
alert(funcArg.arguments.testArg);
alerte(funcArg.arguments[0]);
>
alert(new Array().testArg); // résultat : "test"
funcArg(10); // résultat : "non défini" "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é.
fonction f(a, b, c){
alert(arguments.length); // résultat : "2"
une = 100;
alerte(arguments[0]); // résultat : "100"
arguments[0] = "qqyumidi";
alert(a); // résultat : "qqyumidi"
alert(c); // résultat : "indéfini"
c = 2012;
alert(arguments[2]); // résultat : "non défini"
>
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 d'une fonction Javascript n'a pas de type de valeur de retour
Deuxième : à 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 l'objet arguments.
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.
fonction f(a){
Renvoie un 10 ;
>
fonction f(a){
Renvoie un - 10 ;
>
// Sans considérer la différence entre déclaration de fonction et expression de fonction, cela équivaut à ce qui suit
var f = fonction(a){
Renvoie un 10 ;
>
var f = fonction(a){
Renvoie un - 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 :
fonction compte(a){
Si(a==1){
retourner 1 ;
}
Renvoie un arguments.callee(--a);
>
var mm = compte(10);
alerte(mm);