mqyqingfeng / Blog

冴羽写博客的地方,预计写四个系列:JavaScript深入系列、JavaScript专题系列、ES6系列、React系列。
30.53k stars 4.7k forks source link

占位符 #303

Open BEN13459290037 opened 2 years ago

BEN13459290037 commented 2 years ago

function curry(fn, params, hole) { let fnLen = fn.length; params = params || []; return function (...p) { for (let i = 0; i < params.length && p.length; i++) { if (params[i] === hole) { params[i] = p.shift(); } } let paramsAll = [...params, ...p];

if (paramsAll.filter((v) => v !== hole).length < fnLen) {
  return curry.call(this, fn, paramsAll, hole);
} else {
  return fn.apply(this, paramsAll);
}

}; }