高阶函数
函数当参数,将传入的函数封装,返回封装后的函数,达到更高程度的抽象,
var add = (a,b) => a+b;
var math = (func,arr) => func(arr[0],arr[1]);
math(add,[1,2])
尾调用优化
函数最后一步,调用本身。
//普通递归
function sum(x){
if(x===1){
return 1;
}
return x+sum(x-1);
}
//尾调用优化
function sum(x,total){
if(x===1){
return x+total;
}
return sum(x-1,x+total);
}
闭包
function makePowerFn(power){
function powerFn(base){
return Math.pow(case,power);
}
}
var square = makePowerFn(2);
square(3); //9
网友评论