8

重複の可能性:
関数のアリティを取得する

関数式を宣言し、それを定義済み関数に渡し、定義済み関数に関数式の引数の数を決定させるにはどうすればよいですか?

参照用に次のコードスニペットを参照してください。

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
4

2 に答える 2

16

JavaScript 関数には .length プロパティがあります

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/length

于 2012-12-02T21:41:07.303 に答える
2

を使用してこれを行うことができますがtheFunction.length、これには反対することをお勧めします: 他の理由の中で:

  • Function.bind単純なシムにバインドされた関数では機能しません。
  • ネイティブ関数では機能しません。(例window.open) 1

1少なくとも Chrome では。Firefoxで動作するようです。

于 2012-12-02T21:40:50.217 に答える