一个函数接收另一个函数作为参数,这种函数就称之为 高阶函数。
一个最简单的高阶函数:
function add(x, y, f) {
return f(x) + f(y);
}
当我们调用 add(-5, 6, Math.abs)
时,参数 x,y 和 f 分别接收 -5,6 和函数 Math.abs
,根据函数定义,我们可以推导计算过程为:
x = -5;
y = 6;
f = Math.abs;
f(x) + f(y) ==> Math.abs(-5) + Math.abs(6) ==> 11;
return 11;
用代码验证一下:
add(-5, 6, Math.abs); // 11