//使用闭包 和递归 必须要满足curry传递的函数条件 才可以进行执行 比如 他传递了 a,b,c 比如要三个参数满足了才会执行这个函数
// 写柯里化的时候不能给函数传递默认值
function curry(fn, length) { // 2 1
length = length || fn.length;
var slice = Array.prototype.slice;
return function() {
if (arguments.length < length) { //就是如果是一个函数他的参数肯定是 === arguments 如果在有一个函数传递进去 肯定进这个if 里面
var combined = [fn].concat(slice.call(arguments));
return curry(sub_curry.apply(this, combined), length - arguments.length);
} else {
return fn.apply(this, arguments);
}
};
}
var fn = curry(function(a , b, c) {
return [a, b, c];
});
// 写柯里化的时候 不能给 函数 有默认值
var fn = curry(function(a = 1, b, c) { // fn.length ==== 0
return [a, b, c];
});
console.log(fn("a")('b')('c')); // ['a','b','c']
理解简单的柯里化
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 简单理解JavaScript中的柯里化和反柯里化 前言 本文旨在让大家简单理解柯里化和反柯里化,这里不做深入探究,...
- 简单理解JavaScript中的柯里化和反柯里化 前言 本文旨在让大家简单理解柯里化和反柯里化,这里不做深入探究,...
- 在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函...
- 【蝴蝶效应】 蝴蝶效应:上个世纪70年代,美国一个名叫洛伦兹的气象学家在解释空气系统理论时说,亚马逊雨林一只蝴蝶...