看书是不太容易懂,这个和其他语言都不同
一个一个从左向右的执行括号,也不是很难
var ret=function(...){...}
ret.valueOf=ret.toString=function(){...}楼主明白这句意思吗

解决方案 »

  1.   

    就像这样:
    <script type="text/javascript">function add(){
        var args = Array.prototype.slice.call(arguments,0);
        var iNum = (args.length>0)?eval(args.join("+")):0;
        var innerAdd = function(){
            var args = Array.prototype.slice.call(arguments,0);
            iNum += (args.length>0)?eval(args.join("+")):0;
            return arguments.callee;
        }
        innerAdd.toString = function(){
            return iNum;
        }
        return innerAdd;//即返回function,又可以取值(toString的作用)
    }var x = add(1)(3)(5)(7)(9)(11)(13)(15)(17)(19);
    alert(x);
    x(20,30,40,50,60,70);
    alert(x);
    x = null;</script>
      

  2.   

    js中函数也就是Function类的对象,f()可以看作是f这个对象的操作符
    dwn(add(5)(10)(20)(5)(5));就相当于:
    f1 = add(5);
    f2 = f1(10);
    f3 = f2(20);
    ...
    dwn(f5);