偏应用函数是通过预先填充原始函数的部分(不是全部)参数来创建一个新函数
我们直接使用bind函数:
function add(a, b, c) {
return a+b+c;
}
add(1, 2, 3); // 6
var add1 = add.bind(this, 1, 2);
add1(3); // 6
但是bind函数会改变this指向
我们来实现偏函数(从左往右应用参数):
function partial(fn) {
var args = [].slice.call(arguments, 1);
return function() {
var _args = [].slice.call(arguments);
return fn.apply(this, args.concat(_args));
}
}
相关系列文章: