middle引数がオプションですが、最後の引数が必須のJavaScript関数を実装する一般的な方法は何ですか?慣用的なES2015ソリューションが好ましい。中間引数を任意にするための慣用的方法
は、例えば、私は一般的に、このような複数の方法で呼び出すことができる機能を、以下を参照してください。
func(firstArg, callback);
func(firstArg, options, callback);
だから何実際に起こることは引数の数は、各引数の解釈に影響を与えることがあります。
私は、引数の長さをチェックすることにより、このような何かこれを扱うことができます知っている:
// func(firstArg, options, callback);
// or: func(firstArg, callback);
function (firstArg, ...args) {
let options = {};
if (args.length > 1) {
options = args.shift();
}
let callback = args[0];
// And do stuff ...
}
をしかし、それは不格好と思われます。これを行うより良い方法はありますか?
代わりにオブジェクトを渡します。 – Andy
'options'引数がオブジェクトです。 – brianmearns
ほとんどの言語では、最初の場所でこの混乱/不自然さを避けるために、可変引数関数のオプションの引数*規則の後に*オプションの引数だけを指定することができます。 @AlexK。 –