WD1X.COM - 问答一下,轻松解决,电脑应用解决专家
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win11Linux
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascript服务器
PHP教程CSS教程XML教程

Javascript实例教程:JS典型阶乘递归函数

更新时间:2013-04-19 14:33 作者:佚名点击:

来自js高级程序设计

一个典型阶乘递归函数:

function fact(num){
if (num<=1){
return 1;
}else{
return num*fact(num-1);
}
}

以下代码可导致出错:
var anotherFact = fact;
fact = null;
alert(antherFact(4)); //出错

由于fact已经不是函数了,所以出错。

用arguments.callee可解决问题,这是一个指向正在执行的函数的指针。

新的函数为:

function fact(num){
if (num<=1){
return 1;
}else{
return num*arguments.callee(num-1); //此处更改了。
}
}

var anotherFact = fact;
fact = null;
alert(antherFact(4)); //结果为24.

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容