鍍金池/ 問答/HTML/ 看到一到面試題,一直搞不懂用的那些知識點,求大佬幫下忙

看到一到面試題,一直搞不懂用的那些知識點,求大佬幫下忙

實現(xiàn)這樣一個函數(shù)

foo(1,2) // 3
foo(2,3)(4,5) // 14
foo(2)(2)(2)(8) //14

回答
編輯回答
假灑脫
// ES5
function add(){
    var args = [].slice.apply(arguments)
    
    function result() {
        return add.apply(null, args.concat([].slice.apply(arguments)))
    }
    
    result.valueOf = function() {
        return args.reduce(function(sum, x) {
            return sum + x
        }, 0)
    }
    
    return result
}
2017年11月25日 18:32
編輯回答
萢萢糖
function foo(...args){
    let sum=0;
    for(const value of args){
        sum+=value;
    }
    function result(...args1){
        return foo(sum,...args1);
    }
    result.valueOf=function(){return sum};
    return result;
}
foo(1,2)+0
foo(2,3)(4,5)+0
foo(2)(2)(2)(8)+0
2017年10月17日 09:37