相关疑难解决方法(0)

拼图:JS函数返回自己,直到没有参数

我正试图解决一个谜题,并且在我的智慧结束时试图解决它.

我应该创建一个像这样工作的函数:

add(1);       //returns 1
add(1)(1);    //returns 2
add(1)(1)(1); //returns 3
Run Code Online (Sandbox Code Playgroud)

我知道这可以做到,因为其他人已经成功地完成了这个难题.我尝试了几种不同的方法.这是我最近的尝试:

function add(n) {
    //Return new add(n) on first call
    if (!(this instanceof add)) {
        return new add(n);   
    }

    //Define calc function
    var obj = this;
    obj.calc = function(n) {
        if (typeof n != "undefined") {
            obj.sum += n;
            return obj.calc;            
        }

        return obj.sum;
    }

    //Constructor initializes sum and returns calc(n)
    obj.sum = 0;
    return obj.calc(n);
}
Run Code Online (Sandbox Code Playgroud)

这个想法是,在第一次调用时,new add(n)被初始化并calc(n)运行.如果calc接收到一个参数,它增加了nsum返回本身.当它最终没有收到参数时,它返回值sum …

javascript

5
推荐指数
2
解决办法
1214
查看次数

标签 统计

javascript ×1