函数的元
就是参数个数
例如:有两个参数的函数就是二元函数
什么是偏函数
在计算机科学中,偏函数叫做部分应用、局部应用,
指固定一个函数的一些参数,然后产生另一个更小元的函数。
是柯里化的一种用法。
目标
例子
function add(a, b, c){
return a + b;
}
add(1, 2);
// 先传一部分参数,然后返回一个偏函数
// 一定要先传一部分参数
var add1 = partial(add, 1);
// 再在后面把参数凑齐
add1(2, 3);
在JavaScript中使用bind就可以实现这个功能
function add(a, b, c, d){ // 一个四元函数
return a + b + c + d;
}
var newAdd = add.bind(null, 1, 2); // 使用bind,并传入头两个参数,返回一个新的函数
console.log(newAdd(3, 4)); // 最后补回后两个参数
使用apply封装一个partial函数
function partial (x) {
var _args = [].slice.call(arguments, 1);
return function () {
var newArgs = _args.concat([].slice.call(arguments));
return x.apply(this, newArgs);
}
}
// 或者在原型上添加
Function.prototype.partial = function () {
var _self = this,
_args = [].slice.call(arguments);
return function () {
var newArgs = _args.concat([].slice.call(arguments));
return _self.apply(this, newArgs);
}
}