function add (a, b) {
return a + b;
}
add(3, 4); //returns 7
function add (a) {
return function (b) {
return a + b;
}
}
add(3)(4);
var add3 = add(3);
add3(4);
看了例子还不知道柯里化是干嘛用的,好像只是变成闭包的形式而已。。实际用途多吗?该怎么用?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
使用 Curring 直接好处之一是可以帮你更好的处理和抽象代码的逻辑。
举个简单的栗子:
比如我有一个机器人餐厅,我现在想实现一个机器人自主烹饪的功能,那么我可以先实现一个 cook 方法如下:
我如果想要机器人做一个芝士蛋糕或者青椒肉丝的话,我需要向下面这样调用 cook 方法
经过一段时间的营业之后呢,我发现青椒肉丝的下单量非常的大,在客人用餐的时候可能80%的机器人都在做青椒肉丝,结果我需要下面这样频繁的调用 cook
每次都传重复的参数,非常麻烦,那么为了解决这个问题,我们就可以使用 Currying
这样我以后再想让机器人做青椒肉丝,就只用传入对应的机器人id就可以了:
这样是不是清爽很多呢?而且如果某天顾客又突然都喜欢吃芝士蛋糕了,那么我只需要下面这样也可以很方便的实现制作芝士蛋糕:
以上只是一个简单的例子,可能体会起来还不是那么深刻,当你的代码抽象层次更加深的时候,你就更能体会到 Curring 的好处了
日常业务基本没用,装逼可以用