js柯里化

130 阅读1分钟

柯里化,是把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数而且返回结果的新函数的技术。

例如:

// 普通函数
function sum(x, y) {
    return x + y
}
console.log(add(3, 4)) // 7
 
// 函数柯里化
function checkAge (age){
	return function(min){
		return age > min
	}
 
}
console.log(checkAge(20)(18)) // true

如果提供了函数需要的所有参数,如示例中的age和min,则执行函数并返回执行结果。否则,继续返回该函数并等待剩余参数。

例如:

console.log(checkAge(20)(18)) // true
 
console.log(checkAge(20)) // ƒ (min){return age > min}

在柯里化函数内部就是使用闭包,对函数的参数进行缓存。柯里化就是通过一个函数生成一些细粒度更小的函数,从而让函数变得更灵活。目的是为了把多元函数转换成一元函数,在后续使用时组合多个函数并产生强大的功能。