跳到正文

手写练习/函数

GitHub

手写 partial

简单函数式闭包

代码实现

JavaScript16 行
// 提前给一个函数“喂”一部分参数,返回一个只要剩余参数就能执行的新函数。
function partial(fn, ...presetArgs) {
  return function (...laterArgs) {
    return fn.apply(this, presetArgs.concat(laterArgs));
  };
}

function add(a, b, c) {
  return a + b + c;
}

const addOne = partial(add, 1);
const addOneAndTwo = partial(add, 1, 2);

console.log(addOne(2, 3)); // 6
console.log(addOneAndTwo(3)); // 6