高程第七章:函数表达式
定义函数的方法有两种:函数声明式(存在函数声明提升),另一种是函数表达式(匿名函数)
函数递归:函数通过名字调用自身
经典递归阶乘:
function factorial(num){
if( num<=1){ return 1 ;}
else
{ return num*factorial(num-1)};
}
下面的代码会导致出错:
var anotherFactorial = factorial;
factorial =null;
alert ( anotherFactorial(4) )
使用 argument.callee(ps: 是一个正在执行的函数的指针) 可以解决问题
function factorial(num){
if(num<=1){
return 1;
} else{
return num*argument.callee( num-1 );
}
}
在严格模式下,不能通过脚本访问 argument.callee,可以通过使用命名函数表达式来形成相同的效果
var factorial = (function f ( nun) {
if ( num<=1){
return 1;
}
else { return num*f(num-1) };
})();
欢迎前端小伙伴私信交流(qq3109914469)

浙公网安备 33010602011771号