30-seconds-code

  • 截取参数执行方法

好处是可以冗余参数

const rf=(fn,n)=>(...args)=>fn(...args.slice(0,n))
// example
rf(Math.max,3)(1,2,4,5,6)

  • 对于某个对象上方法的执行 即call的反转
/*
* @param key {String}
* @param args {arguments}
* @param fn {Function}
*/
const call=(key,...args)=>o=>o[key](...args)
// example
call('map',i=>2*i)([1,2,3])
  • 将参数数组化
const collectInto = fn => (...args) => fn(args);
// example
collectInto(function(val){console.log(val)})(1,2,3)