54 votes

Obtenir une fonction d'arité de l'

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

Remarque, ce n'est pas l' arguments paramètre lors de l'appel de la fonction, 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
}

62voto

Josh Lee Points 53741
> zero.length
0
> one.length
1
> two.length
2

Source

Une fonction peut déterminer ses propres 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
}

11voto

JasonSmith Points 34470

Une fonction de l'arité est stocké dans ses .length de la propriété.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X