代码之家  ›  专栏  ›  技术社区  ›  Ojo

是否可以使用乘法(a)(b)功能?

  •  2
  • Ojo  · 技术社区  · 7 年前

    我有一个奇怪的代码测试问题。他们希望我编写一个将(a)和(b)相乘的函数,但不是像这样编写:

    multiply(a,b){
    return a*b;
    }
    

    他们希望我用

    multiply(a)(b)
    

    有可能吗?

    3 回复  |  直到 7 年前
        1
  •  4
  •   CertainPerformance    7 年前

    创建一个返回另一个函数的函数。

    const multiply = a => b => a * b;
    console.log(multiply(4)(3));
        2
  •  0
  •   Holly E    7 年前

    看起来他们希望你用咖喱。Currying允许您将多个参数的函数缩减为一个参数的函数。下面的链接有一个与你的雇主正在寻找的非常相似的例子。

    有用资源: https://blog.benestudio.co/currying-in-javascript-es6-540d2ad09400

    我希望这能回答你的问题。

        3
  •  0
  •   Ben E    7 年前

    它是一个返回函数的函数

    function multiply (a) {
      return function (b) {
        return a * b;
      };
    };
    
    console.log(multiply(4)(3));