// fn(1) // fn(2) // fn(3) // fn(4) // fn(5) // fn() // console.log(1,2,3,4,5) let fn = _curry(console.log,'test'); fn(1) fn(2) fn(3) fn(4) fn(5) fn() function _curry(fn){ let _arguments = Array.from(arguments); let params = _arguments.splice(1); return function(){ let __arguments = Array.from(arguments); if(__arguments.length >= 1){ params.push(...__arguments); }else{ return fn(...params,...arguments); } } }