Javascript 为可以使用指定输入调用的对象创建泛型函数

Javascript 为可以使用指定输入调用的对象创建泛型函数,javascript,functional-programming,ecmascript-6,Javascript,Functional Programming,Ecmascript 6,我希望能够在JSON中创建一系列对象,如下所示: const objects = { type1: { inputs: [value1, resultOfFunction(), value3], typeFunction: (arg1, arg2, arg3) => { //this does a thing with the inputs and returns an output } }, type2: { inputs: [va

我希望能够在JSON中创建一系列对象,如下所示:

const objects = {
  type1: {
    inputs: [value1, resultOfFunction(), value3],
    typeFunction: (arg1, arg2, arg3) => {
      //this does a thing with the inputs and returns an output
    }
  },
  type2: {
    inputs: [val1, val2],
    typeFunction: (arg1, arg2) => {
      //this does a thing with these inputs and returns an output
    }
  }
}
这里的要点是,每个
类型
都包含某种blackbox函数,该函数接受一系列参数并返回一个值。每种类型的参数数量不同,这些参数的值也不同。我建议有一个数组
inputs
,指定要传递给每个函数的值,但我愿意接受其他选择

然后,如何使用这些函数各自的输入来通用地调用它们?e、 g

type1.typeFunction() //obvs this doesn't work
然后,如何使用这些函数各自的输入来通用地调用它们

您可以指定输入,也可以使用扩展表示法:

type1.typeFunction(...type1.inputs);
…或者您在
类型上定义一个函数来执行此操作


注:在

inputs: [value1, resultOfFunction(), value3]
将在处理整个对象初始值设定项时调用
resultOfFunction
,而不是稍后调用
type1.typeFunction
时。也许这正是你想要的,但我认为具体地说出来是有用的。如果它不是您想要的,那么您必须将其放入函数中,以便在调用该函数之前/除非调用该函数,否则不会执行该操作

然后,如何使用这些函数各自的输入来通用地调用它们

您可以指定输入,也可以使用扩展表示法:

type1.typeFunction(...type1.inputs);
…或者您在
类型上定义一个函数来执行此操作


注:在

inputs: [value1, resultOfFunction(), value3]
将在处理整个对象初始值设定项时调用
resultOfFunction
,而不是稍后调用
type1.typeFunction
时。也许这正是你想要的,但我认为具体地说出来是有用的。如果它不是您想要的,那么您必须将其放入函数中,以便在调用该函数之前/除非调用该函数。

这不是JSON。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就不是在处理JSON。这不是JSON。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么就不是JSON。