我生命中的第一次看到这个功能,无法理解它是如何工作的
export default foobar(val1)(val2);
我还没有得到完整的代码,只是它的一小部分,我理解了什么export default
但第二个(val2)
是什么意思?它是如何工作的?
答案 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正在返回一个函数
var foo = function (val1) {
console.log(val1);
return function (val2) {
console.log(val2);
};
};
foo('abc')('xyz');
输出: 'ABC' 'XYZ'