我的功能如下:
function helo(a,b){
if(a)
{
//do something
}
if(b)
{
//do something
}
}
现在,如果我想在调用helo时指定必须传递哪个参数,我该如何在javascript中进行,即
如果我只想发送参数b,我该如何调用函数helo?
helo(parameterB);
现在参数a取值
答案 0 :(得分:9)
您最好的选择是传递包含所有参数的对象:
function myFunction(parameters){
if(parameters.a) {
//do something
}
if(parameters.b) {
//do something
}
}
然后你可以这样调用这个函数:
myFunction({b: someValue}); // Nah, I don't want to pass `a`, only `b`.
如果您希望能够将falsy
值作为参数传递,则需要稍微更改if
:
if(parameters && parameters.hasOwnProperty('a')){
//do something
}
另一种选择是简单地为您不想使用的参数传递null
(或任何其他falsy
值):
helo(null, parameterB);
答案 1 :(得分:2)
在JavaScript中,参数根据顺序进行匹配,因此如果您只想传递第二个参数,则必须先将其留空
helo(null,parameterB);
答案 2 :(得分:1)
您可以传入一个参数,而不是传递多个不同的参数。
例如:
function helo(args){
if(args.a){ ... }
if(args.b){ ... }
}
helo({b: 'value'});
答案 3 :(得分:0)
您可以使用以下两种语法之一:
helo(null,parameterB);
或
helo(undefined,parameterB);