This question already has answers here:
How do JavaScript closures work?
                            
                                (86个答案)
                            
                    
                2年前关闭。
        

    

function makeAdjectifier(adjective) {
    return function(string) {
        return adjective + "" + string;
    };
}
var coolifier = makeAdjectifier("COOL");
console.log(coolifier("conference")); //outputs "COOLconference"


因此,我在这里看到的是调用coolifier函数并将会议字符串作为参数传递,并且coolifier从makeAdjectifier获取输入,&cool作为参数传递,从而形容词变得很酷。现在,形容词再次返回以字符串为参数的函数。内部函数如何提供会议,使字符串等于会议。

最佳答案

该技术称为“ currying”,最基本的解释是,当您调用“ makeAdjectifier”时,您创建了一个函数,该函数不仅期望一个字符串,而且知道在其创建过程中分配的变量。

这是一个很酷的参考:https://www.sitepoint.com/currying-in-functional-javascript/

10-07 19:02
查看更多