看书是不太容易懂,这个和其他语言都不同
一个一个从左向右的执行括号,也不是很难
var ret=function(...){...}
ret.valueOf=ret.toString=function(){...}楼主明白这句意思吗
一个一个从左向右的执行括号,也不是很难
var ret=function(...){...}
ret.valueOf=ret.toString=function(){...}楼主明白这句意思吗
<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>
dwn(add(5)(10)(20)(5)(5));就相当于:
f1 = add(5);
f2 = f1(10);
f3 = f2(20);
...
dwn(f5);