如何使我的函数在以后不传递第二个参数?

时间:2019-03-16 18:14:57

标签: javascript

我正在使用语音识别软件来编写一个小脚本。

我已对其进行设置,以便在语音命令识别出命令时,它会启动功能。

该函数带有两个参数,状态和标签。

例如,您可以说

“ {state}门{tag}。

示例:“ {{打开}门{a}””

状态和标签可以是任何东西。我的函数通过它检查它是否为字符串,是否为单数字母,是否与数据库匹配等,最后,如果一切通过,则将数据发送到表单。要指出的是,这些参数必须通过的第一个“障碍”是:

if (typeof tag === "string" && tag.length === 1){ 

do stuff 

} else {
console.log(`Parameter ${tag} is either not a word, or not a singular 
letter.`);
} 

它仅与一个参数/参数(又名tag)完美配合,但对于两个参数/参数,它也传递“状态”?再次,我的else控制台日志被解雇,说出诸如“ Open is not a word ...”之类的内容。

稍后在我的代码中,状态在检查的地方变得很重要

 if (state === open || state === closed) {}

我要说的是,如何使它忽略该参数,直到以后需要它为止?有没有办法使它可选?使它仅首先传递“ tag”参数/参数,而在需要时传递另一个参数/参数?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可能有一个带有两个参数的函数,其中一个是可选的。这是一个示例:

function test(p1,p2="optional"){
   console.log(p1);
   
   if(p2 == 'optional'){
        console.log("...returning\n");
        return;
   }
   else
   {
      console.log(p2);   
   }
   
}

test("param1");
test("param1","param2");

在这种情况下,因为param2是可选的,所以第一次仅使用param1调用该函数。第二次使用两个参数调用该函数。