深入理解javascript函数进阶系列第二篇——函数柯里化
16lz
2021-01-22
前面的话
函数柯里化currying的概念最早由俄国数学家Moses Schönfinkel发明,而后由著名的数理逻辑学家Haskell Curry将其丰富和发展,currying由此得名。本文将详细介绍函数柯里化(curring)
定义
currying又称部分求值。一个currying的函数首先会接受一些参数,接受了这些参数之后,该函数并不会立即求值,而是继续返回另外一个函数,刚才传入的参数在函数形成的闭包中被保存起来。待到函数被真正需要求值的时候,之前传入的所有参数都会被一次性用于求值
从字面上理解currying并不太容易,下面通过编写一个计算每月开销的函数来解释函数柯里化currying
每月开销函数
在每天结束之前,都要记录今天花掉了多少钱。代码如下:
var monthlyCost = 0;
var cost = function( money ){
monthlyCost += money;
};
cost( 100 ); // 第 1 天开销
cost( 200 ); // 第 2 天开销
cost( 300 ); // 第 3 天开销
//...
cost( 700 ); // 第 30 天开销
alert ( monthlyCost ); // 输出1个月的总开销
更多相关文章
- 使用HTML文件中的React调用.js文件中的Javascript函数
- 使用单个函数隐藏多个输入
- 如何从控制器内的javascript函数调用角范围函数
- 在传递给google.setOnLoadCallback()的函数中使用参数;
- 另一个iframe中的iframe的onload函数
- JavaScript 中的函数介绍
- ABP(现代ASP.NET样板开发框架)系列之21、ABP展现层——Javascrip
- 为什么括号用于包装javascript函数调用? [重复]
- javascript 构造函数中的属性与原型上属性优先级的比较