Question

En Javascript, comment peut-on déterminer le nombre de paramètres formels définis pour une fonction?

Remarque, ce n'est pas le paramètre arguments lorsque la fonction est appelée, mais le nombre d'arguments nommés la fonction a été définie avec.

function zero() {
    // Should return 0
}

function one(x) {
    // Should return 1
}

function two(x, y) {
    // Should return 2
}
Était-ce utile?

La solution

> zero.length
0
> one.length
1
> two.length
2

Source

Une fonction peut déterminer sa propre arité (longueur) comme ceci:

// For IE, and ES5 strict mode (named function)
function foo(x, y, z) {
    return foo.length; // Will return 3
}

// Otherwise
function bar(x, y) {
    return arguments.callee.length; // Will return 2
}

Autres conseils

est stockée la arité d'une fonction dans sa propriété .length.

function zero() {
    return arguments.callee.length;
}

function one(x) {
    return arguments.callee.length;
}

function two(x, y) {
    return arguments.callee.length;
}

> console.log("zero="+zero() + " one="+one() + " two="+two())
zero=0 one=1 two=2

est couvert dans d'autres réponses, la propriété length vous dit que. Donc zero.length sera 0, one.length sera 1 et two.length sera 2.

de ES2015, nous avons deux rides:

  • Les fonctions peuvent avoir un paramètre « repos » à la fin de la liste des paramètres qui rassemble tous les arguments donnés à cette position ou après dans un tableau vrai (contrairement à la pseudo-tableau de arguments)
  • Paramètres de fonction peuvent avoir des valeurs par défaut

Le paramètre « repos » est pas prise en compte lors de la détermination de la arité de la fonction:

function stillOne(a, ...rest) { }
console.log(stillOne.length); // 1

De même, un paramètre avec un argument par défaut ne contribue pas à l'arité, et en fait empêche les autres le suivent d'ajouter à elle, même si elles ne disposent pas par défaut explicites (ils sont supposés avoir un défaut silencieux de undefined):

function oneAgain(a, b = 42) { }
console.log(oneAgain.length);    // 1

function oneYetAgain(a, b = 42, c) { }
console.log(oneYetAgain.length); // 1

Une fonction arité est le nombre de paramètres de la fonction contains.It peut être obtenue en appelant la propriété de la longueur.

Exemple:

function add(num1,num2){}
console.log(add.length); // --> 2

function add(num1,num2,num3){}
console.log(add.length); // --> 3

Note:. Le nombre de paramètres passés dans un appel de fonction n'affecte pas la arité de la fonction

La propriété arité utilisée pour renvoyer le nombre d'arguments attendus par la fonction, cependant, il n'existe plus et a été remplacée par la propriété Function.prototype.length.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top