柯里化、高阶函数、
2018-09-23 本文已影响1人
_William_Zhang
- 柯里化
柯里化:将 f(x,y) 变成 f(x=1)(y) 或 f(y=1)x
//柯里化之前
function sum(x,y){
return x+y
}
//柯里化之后
function addOne(y){
return sum(1, y)
}
//柯里化之前
function Handlebar(template, data){
return template.replace('{{name}}', data.name)
}
//柯里化之后
function Handlebar(template){
return function(data){
return template.replace('{{name}}', data.name)
}
}
这就是柯里化
柯里化--这里我理解为复合函数
- 高阶函数
在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数:
**接受一个或多个函数作为输入:forEach sort map filter reduce
**输出一个函数:lodash.curry
**不过它也可以同时满足两个条件:Function.prototype.bind