Open ziwei3749 opened 6 years ago
慨念: 只传递给函数的一部分参数来调用它,让它返回一个新的函数去处理剩下的参数 可以用于惰性求值
慨念: 只传递给函数的一部分参数来调用它,让它返回一个新的函数去处理剩下的参数
可以用于惰性求值
function curry( fn, someParams ) { someParams = Array.isArray( someParams ) ? someParams : [] return function () { let newParams = Array.from( arguments ) let allParams = [ ...someParams, ...newParams ] if ( fn.length === allParams.length ) { // 跳出递归条件:形参的长度和累计实参的长度相同 return fn.apply( null, allParams ) } else { return curry( fn, allParams ) } } }
注意实现curry的时候,我并没有使用箭头函数,因为箭头函数里没有arguments
函数柯里化
函数柯里化的慨念和作用:
curry函数的实现