javascript - Javascript:如何编写一个接受不同数量参数的函数
问题描述
在 JS (with Flow) 中如何定义一个函数并使用不同数量的参数调用它
假设我有一个函数,其参数是用流输入的
function fun(
name: string,
age?: string,
gender: string,
metaData?: {
hobby: ?string,
lifeGoal: ?string,
}
): void {
// do something
}
这就是我想以两种方式称呼它们的方式:
fun('Jimmy', '30', 'male', {hobby: 'ride bike', lifeGoal: 'beat Zerg'});
fun('Kerri', 'female', {hobby: 'transform', lifeGoal: 'beat Terran'});
如果我不想将“年龄”放入“元数据”,我如何确保“女性”映射到“性别”而不是“年龄”,因为它们都是字符串类型。
解决方案
这称为“重载”,不是 javascript 的功能。您可以通过允许您的函数接受一个对象作为参数来伪造它,并且您可以在该对象中填充您想要的任何内容。请参见下面的示例:
function foo(a, b, opts) {
// ...
if (opts['test']) { } //if test param exists, do something..
}
foo(1, 2, {"method":"add"});
foo(3, 4, {"test":"equals", "bar":"tree"});`
推荐阅读
- javascript - 如何将动态创建的 JavaScript 表单字段中的表单数据接收到 JSP 中?
- excel - VBA 代码在调试模式下运行但不在运行时
- typescript - TypeScript 联合数组与数组联合
- c# - Pushsharp Apns 通知错误:“InvalidToken”
- tensorflow - 如何导入特定版本的 tensorflow?
- javascript - findandupdate 返回 null 并承诺所有 - mongoose
- ios - 检测文本字段中的剪切操作 - Swift
- postgresql - 显示所有可能维度的 CUBE PostgreSQL 结果
- php - 在fuelphp中添加mysqli连接
- python - OpenAI Gym - 如何打造一热式观察空间?