您在这里看到的称为currying,与之相关,但与部分应用程序不同。
重点是将带有多个参数的函数调用分解为带有单个参数的多个函数调用。
在这种情况下,a
是一个函数,该函数返回一个函数,该函数返回将x
的绝对值y
与b
相加的结果(来自调用)到a
)和c
(从调用到a
的返回值)。
,
a
是接受参数b
的函数的结果。该函数返回另一个函数,该函数接受参数c
并返回x + y + c
加上绝对值b
。
let x = 2;
let y = 8;
const a = function(b) {
console.log({
b
});
return function(c) {
console.log({
c
});
return x + y + Math.abs(b) + c;
}
};
// Statement will go here
const fn = a(x);
fn(12) // will have b=2 and c=12
,
似乎是一个函数指针。 function(b)
接受传递到函数指针x
中的参数a
,此函数指针引用function(b)
,但不同于普通函数立即返回值function(b)
返回另一个函数function(c)
,该函数当然接受一个参数,并且在调用const fn
时应填写该参数。
我的理论是,例如,当您调用fn fn(3)
时,您将得到与2 + 8 + Math.abs(2) + 3;
相等的结果
如果没有const fn
,您也可以像a(2)(3)一样调用a
,我相信会获得相同的结果。
希望这会有所帮助。
本文链接:https://www.f2er.com/2997435.html