js一道题目，大家进来瞅一瞅
函数add可以实现连续的加法运算
函数add语法如下
add(num1)(num2)(num3)...;//注意这里是省略号哟，无限
使用举例如下：
add(10)(10)=20;
add(10)(20)(50)=80;
add(10)(20)(50)(100)=180;
请用js代码实现函数add。
```
function add(num){
    var sum=num,
    
        tmp=function(v){
            sum+=v;
            return tmp
        };
    
    tmp.toString=function(){
        return sum
    };
    
    return tmp
}


console.log( add(10)(20)(50) )        //80

```
这个tmp又返回tmp是什么操作，这就是传说中的偏函数吗？还有toString的调用？
```
console.log( add(10)(20)(50) )
```
之后代码运行的过程是：
1.首先执行add(10),初始化add函数内部sum为10,
```
return tmp=function(v){
            10+=v;
            return tmp
        };
```
2.其后执行tmp(20)即：
```
return tmp=function(20){
            10+=20;
            return tmp
        };
```
3.其后执行tmp(50)
```
return tmp=function(50){
            30+=50;
            return tmp
        };
```
4.其后输出时会执行一个类型转换函数即被重写的：
```
tmp.toString=function(){
        return sum
    };
```
5.输出tmp函数以及即内容即此时的sum：80