首页 > 解决方案 > 如何使用参数调用不同的函数?

问题描述

我提出了以下解决方案,用于根据参数值调用不同的函数。有没有更好/更简单的方法?

function mainFunction(input, category) {
  categories = {
    'category1': () => { return { /* return stuff */ }}
    'category2': () => { return { /* return stuff */ }}
  }
  return categories[category].call();
}

谢谢!

标签: javascriptnode.js

解决方案


你可以直接做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)


推荐阅读