1

あなたが持っているとしましょう

var funct=function(a,b){
    return a+b;
};
console.log(funct);

関数から引数 (a と b) の名前を取得する方法はありますか? あなたがその機能に参加している場合、それらにアクセスできますか? 「引数」が配列のようなオブジェクトを提供することは知っていますが、関数が宣言されたときに引数の名前を取得できるように、引数のマップのような表現またはオブジェクトのような表現を与えるものはありますか?

4

2 に答える 2

5

いいえ、できません。変数の名前を文字列として取得する方法はありません。

これが本当に必要な場合は、複数のパラメーターを渡す代わりに、オブジェクトを渡すことをお勧めします。

var funct=function(args){
    var argsNames = Object.keys(args); // Get the keys of the args object
    console.log(argsNames); // ['a','b']
    return args.a + args.b;
};

次に、次のように呼び出します。

funct({
    a: 12,
    b: 2
});
于 2012-06-14T16:05:10.557 に答える
2

1 つの方法は、関数を文字列に変換して解析することです。

var funct=function(a,b){
    return a+b;
};
var re = /\(([^)]*)/;
var daArgs = funct.toString().match(re)[1].split(/,\s?/);
console.log(daArgs);

jsフィドル

なぜそれが必要なのかはまだわかりません。

于 2012-06-14T16:08:10.580 に答える