在javascript

时间:2015-07-02 14:32:51

标签: javascript

我的功能如下:

function helo(a,b){
    if(a)
    {
       //do something
    }
    if(b)
    {
       //do something
    }
}

现在,如果我想在调用helo时指定必须传递哪个参数,我该如何在javascript中进行,即

如果我只想发送参数b,我该如何调用函数helo?

helo(parameterB); 

现在参数a取值

4 个答案:

答案 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);