Skip to content

柯里化

函数可以分多次调用,从而得到结果

作用:参数复用,提前返回,延迟计算

例子

bind 原理

js
function curry() {
  let result = [...arguments];
  return function () {
    if (arguments.length !== 0) return result.push(...arguments);
    var add = 0;
    for (var i = 0, l = result.length; i < l; i++) {
      add += result[i];
    }
    return add;
  };
}
const add = curry();
console.log(add(1, 12));
console.log(add(1, 22));
console.log(add());
js
// 原理是利用闭包把传入参数保存起来,当传入参数的数量足够执行函数时,就开始执行函数
function isType(type) {
  return function (target) {
    return `[object ${type}]` === Object.prototype.toString.call(target);
  };
}

const isType = (type) => (target) =>
  `[object ${type}]` === Object.prototype.toString.call(target);

在 MIT 许可下发布