javascript - 如何让我的函数直到稍后才传递第二个参数?
问题描述
我正在使用语音识别软件编写一个小脚本。
我已对其进行了设置,以便当语音命令识别命令时,它会启动一个功能。
该函数有两个参数,状态和标签。
例如,你可以说
“{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) {}
我的意思是,我如何让它忽略该参数,直到以后需要它?有没有办法让它成为可选的?让它只先传递“标签”参数/参数,然后在需要时传递另一个?
谢谢。
解决方案
您可能有一个带有两个参数的函数,其中一个是可选的。这是一个例子:
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 是可选的。第二次使用两个参数调用该函数。
推荐阅读
- php - PHP在多维数组中的特定索引上查找重复项
- g1ant - 轻松在 G1ant 软件中编写代码
- asterisk - 找到对应的中继通道
- python - 适用于 Linux (WSL 2) 和 Jupyter Lab 的 Windows 子系统:在 Linux 而不是 Windows 的文件系统下保存新的 Jupyter Notebook
- eigen - 特征动态大小的矩阵垂直/水平Linspaced?
- java - Java Key Store 总是以空别名结束
- google-sheets - 如何将 SORT/ORDER 和 GROUP 组合在一个 QUERY 中?
- python - 每次使用 Python 创建一个 cmd ''ipconfig/flushdns'' 命令的应用程序?
- r - 使用 ggplot2 绘制堆叠区域和线条
- python - pytorch 数据集中每个类的实例数