<script>var abc=function(x){if(x<2) return 1;else return x*arguments.callee(x-1);}var y=abc(5);alert(y);
</script>
参数检验
<script>function check(args){var actual=args.length; //实际的参数长度var expected=args.callee.length; //期待的参数长度if (actual!=expected){ //实际长度和期待长度不同是报错throw new Error("Wrong number of argument:expected:"+expected+";actually passed"+actual);}}function f(x,y,z){check(arguments);return x*y*z;}var f=f(1,2,3); //修改参数会报错alert(f);
</script>