
<script>function sum(num){return function(num2){return num+num2}}console.log(sum(1)(2))</script>
面试考察

只要参数够了 达到某个数量就输出
<script>let nums=[]function sum(...args){nums.push(...args)if(nums.length>=5){const out = (nums.slice(0,5).reduce((prev,res)=>{return res+=prev},0))nums = []return out}else{return sum}}console.log(sum(1,1,1)(1,1))</script>
调优
<script>function sumMaker(len){let nums = []function mySum(...args){nums.push(...args)if(nums.length>=len){const res = nums.slice(0,len).reduce((prev,out)=>{return out+=prev},0)nums=[]return res}else{return mySum}}return mySum}console.log(sumMaker(4)(1,2)(3,4))</script>
实际应用

<script>const typeOfTest = function(TYPE){function isUndefined(thing){return typeof thing === TYPE}return isUndefined}</script>