javascript - 如何使用参数调用不同的函数?
问题描述
我提出了以下解决方案,用于根据参数值调用不同的函数。有没有更好/更简单的方法?
function mainFunction(input, category) {
categories = {
'category1': () => { return { /* return stuff */ }}
'category2': () => { return { /* return stuff */ }}
}
return categories[category].call();
}
谢谢!
解决方案
你可以直接做categories[category]()
。
但是,我会这样做,以避免每次调用此函数时都定义类别对象:
const actions = {
category1: (a, b, c) => { console.log(a, b, c) },
category2: () => { return { /* return stuff */ }},
call: (category, ...args) => {
if (!actions[category]) {
throw new Error("Invalid category.")
}
return actions[category](...args);
}
}
actions.call("category1", 42, 7, 0)
推荐阅读
- ios - 我想将字符串转换为 UIColor
- json - json数据文件中的人脸识别结果
- c# - c# 中的通用延迟/计划操作调用
- laravel - Laravel 重定向到使用 url 参数播放的新 url
- ruby-on-rails - 条纹集成在 Rails 项目中未被识别
- node.js - 如何修复 ReferenceError: router is not defined 错误?
- python - 为什么插入后 stream.Parts 没有很好地形成?
- javascript - 在 app.js 中添加 ngLoadScript 作为依赖项后路由是否有效?
- mysql - Laravel / SQL - 按时间间隔存储数据
- ios - 剪裁时使 SwiftUI 点击不会超出边界