函数柯里化
1. 什么是函数柯里化?
函数柯里化是js闭包的典型应用。所以缺点就是闭包造成的缺点,占用内存较多等
什么是函数柯里化?
就是将一个函数的多个参数,分成多个单一参数的函数返回
好处:入口单一,便于测试和复用; 易于定位bug
坏处:嵌套的函数多,占用内存多,效率低,每个函数都会在栈中占据内存,都有单独的函数级作用域
// 普通函数
function fn(n,m,z){
console.log(n+m+z);
}
fn(1,2,3)
// 柯里化之后 --- 每次只传入一个参数,而且内部是以函数形式嵌套的
function xx(n){
return function(m){
return function(z){
console.log(n + m + z);
}
}
}
2. 函数柯里化面试题
/**题目:
* 函数柯里化
* add(1,2,3)
* add(1)(2)(3)
* add(1,2)(3)
* add(1)(2,3)
*/
// 函数柯里化
function add(){
// let args = arguments; // 第一个括号里的参数 // 但args不是一个数组,要进行数组转换
let args = [...arguments]; // args接收第一个括号里的参数
let inner = function()