在javascript中调用函数时传递参数名称

use*_*342 2 javascript

我有一个看起来像这样的功能:

function helo(a,b){
    if(a)
    {
       //do something
    }
    if(b)
    {
       //do something
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

helo(parameterB); 
Run Code Online (Sandbox Code Playgroud)

现在参数a取值

Cer*_*rus 9

你最好的选择就是传递一个包含所有参数的对象:

function myFunction(parameters){
    if(parameters.a) {
        //do something
    }
    if(parameters.b) {
        //do something
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样调用函数:

myFunction({b: someValue}); // Nah, I don't want to pass `a`, only `b`.
Run Code Online (Sandbox Code Playgroud)

如果您希望能够将falsy值作为参数传递,则必须更改ifsa位:

if(parameters && parameters.hasOwnProperty('a')){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

另一种选择是简单地传递null(或任何其他falsy值)您不想使用的参数:

helo(null, parameterB); 
Run Code Online (Sandbox Code Playgroud)