gpt4 book ai didi

javascript - 我不明白这个 javascript 函数调用以及它会在哪里使用

转载 作者:搜寻专家 更新时间:2023-11-01 05:04:43 25 4
gpt4 key购买 nike

有人向我展示了一些我不熟悉的东西,我真的很想了解人们会如何以及为什么会这样做:

假设我们有一个名为 myfunc 的函数,它可以通过两种方式之一调用并返回相同的值(假设简单的整数相加):

myfunc(1,2)
myfunc(1)(2)

我找遍了,找不到第二次调用的任何示例。我的理解是该函数可以返回一个函数对象(可能定义为闭包或 lambda?),然后将其作为参数传递?

最佳答案

这就是柯里化(Currying)。在您的示例中,该函数可能如下所示:

function myfunc(a, b) {
if (b === undefined || b === null)
return function(c) { return myfunc(a, c) }

return a + b;
}

本质上,如果尚未传递参数 b,它会返回一个新函数,该函数调用自身并将第一个参数绑定(bind)到它已知的参数。以后对该返回函数的调用只需要第二个参数,在此处的示例中作为 c 传递。

以这种方式使用柯里化(Currying)函数意味着您可以创建对函数的引用以执行特定功能,例如:

var add5 = myfunc(5);
console.log(add5(6)); //11

只是在您的原始帖子中,您立即调用柯里化(Currying)函数,而不是将对它的引用存储在变量中。

关于javascript - 我不明白这个 javascript 函数调用以及它会在哪里使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29897402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com