Javascript解释以下语法

Javascript解释以下语法,javascript,syntax,ecmascript-6,Javascript,Syntax,Ecmascript 6,有人能解释一下JavaScript的语法吗: const result = (x, y) => (z) => { /* code area */ return something; } 我的假设: (x,y)=>(z)是对函数z的调用 (z) =>{}是对{}内任何内容的调用 问题: 如果是这样,我对代码流的期望是什么 e、 首先调用g:z,然后将值返回给匿名函数(x,y)=> 括号是必需的吗 关于访问代码区域中的变量x、y和z,是否可能 最后,请某人给出一

有人能解释一下JavaScript的语法吗:

const result = (x, y) => (z) => { 
  
  /* code area */

  return something;
}
我的假设:

  • (x,y)=>(z)是对函数z的调用
  • (z) =>{}是对{}内任何内容的调用
  • 问题:

  • 如果是这样,我对代码流的期望是什么

    e、 首先调用g:z,然后将值返回给匿名函数(x,y)=>

  • 括号是必需的吗

  • 关于访问代码区域中的变量x、y和z,是否可能

  • 最后,请某人给出一个如何使用/调用此语法的基本示例

    如果我遗漏了什么,你可以找到完整的代码(我的语法是一个虚构的例子),或者直接问我


    提前谢谢

    它与这段代码基本相同:

    const result = function(x, y) {
        return function(z) {
            // do stuff
        };
    };
    
    的处理与箭头函数不同,但除此之外,它是相同的

    因此,当您第一次调用时,它将返回一个函数,但是参数被捕获在闭包中,因此您可以在函数中使用它们

    const partiallyApplied = result(3,4);
    const value = partiallyApplied(7);
    

    这是ES6规范中的
    箭头函数
    语法。将其转换为经典ES5语法如下所示:

    function (x, y) {
      return function (z) {
        /* code area */
    
        return something;
      }
    }
    
    变量x、y和z当然可以在
    代码区访问。
    这种情况下唯一的区别是箭头函数没有自己的上下文,因此
    将引用父上下文(或
    窗口
    ,如果没有上下文)