次のような関数があり、スクリプト全体で呼び出しているとします。
function form_senden( form_name, cnf, confirm_txt, trigger_field, ,do_check, chknfcs, allow, errorMsg ){
// do something
}
ほとんどの関数呼び出しでは、最初のパラメーターのみを渡します。
質問:
この場合、次のように空のパラメーターを渡すことを省略してもかまいません。
form_senden("abc");
または、次のように使用されているかどうかにかかわらず、すべてのパラメーターを渡す必要がありますか?
form_senden("abc","","","","","","","","");
ありがとう!
form_senden( "abc");オンです
他のパラメータは未定義として初期化されます
他のすべては設定されないため、最初のパラメータのみを渡すことは可能です。 1番目と3番目の引数を設定する場合は、次のように2番目のNULLを作成する必要があります。
form_senden("a",null,"b");
関数定義にデフォルト値を入れてform_senden("abc");
するだけです。
function form_senden( form_name, cnf , confirm_txt , trigger_field , ,do_check , chknfcs, allow, errorMsg ){
if(typeof(cnf)==='undefined') cnf = '';
if(typeof(confirm_txt)==='undefined') confirm_txt = ''; ...and so on
// do something
}
関数パラメーターを省略しても問題ありません。欠落しているパラメーターは、関数内でundefined
値を持ちます。
完全を期すために、ES6(ES2015)以降では、デフォルト値を指定できます
// `b` will default to 1
function multiply(a, b = 1) {
return a * b;
}
デフォルトのパラメーター設定について。関数f(arg = 1){}などのデフォルトのパラメーター設定を使用している場合、デフォルト値の設定は、渡されたfalse、null、またはゼロでは機能しません。引数/パラメーターを空のままにするか、渡す必要があります未定義。