js中斐波拉切数的三种写法;
function factorial(num){ if(num <=1){ return 1; }else{ return num* factorial(num-1); } } console.log(factorial(5));//120
面这个函数的执行与函数名紧紧耦合在了一起,可以使用arguments.callee可以消除函数解耦
第二种(在严格模式下,访问这个属性会抛出TypeError错误)
function factorial(num){ if(num <=1){ return 1; }else{ return num* arguments.callee(num-1); } } console.log(factorial(5));//120
第三种:
var factorial = function fn(num){ if(num <=1){ return 1; }else{ return num*fn(num-1); } }; console.log(factorial(5));//120
原文:http://www.cnblogs.com/mc67/p/6901466.html