JS es2015中的未知函数格式

时间:2016-03-02 21:53:33

标签: javascript functional-programming ecmascript-6

我生命中的第一次看到这个功能,无法理解它是如何工作的

export default foobar(val1)(val2);

我还没有得到完整的代码,只是它的一小部分,我理解了什么export default但第二个(val2)是什么意思?它是如何工作的?

2 个答案:

答案 0 :(得分:1)

foobar是一个返回函数的函数。

在ES5中它看起来像这样:

foobar(){
  return function(){...};
}

一个例子:

function saySomething(thing){
  return function(otherThing){
   console.log(thing + otherThing);
  }
}

//say hello bob
var sayHello = saySomething('hello ');
sayHello('bob');

我可以在不创建的情况下实现同样的目标 存储sayHello的中间变量:

saySomething('hello ')('bob');

这允许您利用闭包来编写新函数。

答案 1 :(得分:1)

foo正在返回一个函数

JSBin

var foo = function (val1) {
  console.log(val1);
  return function (val2) {
    console.log(val2);
  };
};

foo('abc')('xyz');

输出: 'ABC' 'XYZ'