获取函数表达式中的参数数量?

时间:2012-12-02 21:38:51

标签: javascript

  

可能重复:
  Get a function’s arity

如何声明函数表达式,将其传递给已定义的函数,并使用已定义的函数确定函数表达式有多少个参数?

请参阅此代码段以供参考:

function getArgumentCount(fexp)
{
    return ...;
}

var fexp1 = function(a) { };
var fexp2 = function(a, b) { };

console.log(getArgumentCount(fexp1)); // Should output 1
console.log(getArgumentCount(fexp2)); // Should output 2

2 个答案:

答案 0 :(得分:14)

答案 1 :(得分:1)

你可以使用theFunction.length来做到这一点,但我会建议不要这样做:其他原因:

  • 它不适用于与naïveFunction.bind垫片绑定的函数。
  • 它不适用于本机功能。 (例如window.open 1

1 至少在Chrome上;它似乎适用于Firefox。