JavaScript:创建一个接受函数和参数的函数defineFirstArg;接受更多的论点

JavaScript:创建一个接受函数和参数的函数defineFirstArg;接受更多的论点,javascript,arguments,higher-order-functions,Javascript,Arguments,Higher Order Functions,创建接受函数和参数的函数defineFirstArg。此外,传入的函数将至少接受一个参数。defineFirstArg将返回一个新函数,该函数调用传入函数,传入参数作为传入函数的第一个参数。传入函数所需的其他参数需要传递到返回函数中 下面是我的代码: const defineFirstArg = (inputFunc, arg) => { return function (argTwo) { return inputFunc(arg, argTwo) } } 但它没有通

创建接受函数和参数的函数defineFirstArg。此外,传入的函数将至少接受一个参数。defineFirstArg将返回一个新函数,该函数调用传入函数,传入参数作为传入函数的第一个参数。传入函数所需的其他参数需要传递到返回函数中

下面是我的代码:

const defineFirstArg = (inputFunc, arg) => {

  return function (argTwo) {
    return inputFunc(arg, argTwo)
  }
}
但它没有通过上一个测试规范:


我做错了什么

第三个测试条件是参数,而不是参数,因此您可能需要尝试使用spread运算符

    const defineFirstArg = (inputFunc, arg) => {

      return function (...addtionalArgs) {
        return inputFunc(arg, ...addtionalArgs)
      }
    }
  f2 = defineFirstArg(console.log,"x")
  f2("y","z",'f')
  //x y z f

要扩展参数并执行传递给无限数量参数的函数

我在哪里添加…arg?我编辑了答案以使其更清楚我希望这是所需的当我运行上面的代码时,它会生成TypeError:Found non callable@@Iterator上次编辑后,我测试了代码,它给出了描述的行为的逻辑结果,但是。。。运算符是es6的新功能,因此,如果javascript版本较旧,则可以使用用户
参数
。要使第二个函数接受无限数量的参数,请检查此答案