首页 > 解决方案 > 如何让我的函数直到稍后才传递第二个参数?

问题描述

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

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

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

例如,你可以说

“{state} 门 {tag}。

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

state 和 tag 可以是任何东西。我的函数通过它检查它是否是一个字符串,它是否是一个单数字母,它是否与数据库匹配等,如果一切都通过,最后将数据发送到一个表单。重点是,这些参数必须通过的第一个“障碍”是:

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

do stuff 

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

它只适用于一个参数/参数,也就是标签,但是有两个,它也可以传递“状态”???Aka,我的 else 控制台日志被触发,说“打开不是一个词......”等。

稍后在我的代码中,状态在检查时变得相关,例如,

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

我的意思是,我如何让它忽略该参数,直到以后需要它?有没有办法让它成为可选的?让它只先传递“标签”参数/参数,然后在需要时传递另一个?

谢谢。

标签: javascript

解决方案


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

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");

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


推荐阅读