假设我有一个这样的函数,我在整个脚本中调用它:
function form_senden( form_name, cnf, confirm_txt, trigger_field, ,do_check, chknfcs, allow, errorMsg ){
// do something
}
在我的大多数函数调用中,我只传递第一个参数。
问题:
在这种情况下,可以像这样省略传递空参数吗:
form_senden("abc");
或者我是否需要传递所有参数,无论它们是否像这样使用:
form_senden("abc","","","","","","","","");
谢谢!
只传递第一个参数是可以的,其他参数不会被设置。 如果要设置第一个和第三个参数,则需要设置第二个
undefined
,如下所示:
form_senden("a",undefined,"b");
form_senden(“abc”);还可以吗
其他参数将被初始化为未定义
您可以直接
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
值。
如果您有类似的情况:
const myFunc = (a = 1, b = 2, c = 3) => a + b + c;
如果您致电
myFunc();
,您将得到 6。
但是,例如,如果您想使用 c = 4 调用 myFunc 并让 a 和 b 保持默认值,则可以像这样调用 myFunc:
myFunc(undefined, undefined, 4);
,这将返回 7。
为了完整性,在 ES6 (ES2015) 及更高版本中,可以指定默认值
// `b` will default to 1
function multiply(a, b = 1) {
return a * b;
}
关于默认参数设置。如果您使用默认参数设置,例如 function f(arg=1) {},则默认值的设置将不适用于传入 false、null 或 0。您必须将 arg/参数留空或传入未定义。
在这里,我找到了将 null 或空值传递给函数的解决方案。它可以在 Node.js 中运行
function returnJSON(name,value1,value2,text){
return object = {
'name':name,
'value1':value1,
'value2':value2,
'text':text
}
}
returnJSON('Hello World',undefined,undefined,'This is Text');