递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
来源:互联网 发布:秦山核电待遇知乎 编辑:程序博客网 时间:2024/06/06 14:13
By Ben
比如求 10! 的结果
比如求 10! 的结果
有两种解法:
法一:
一般的做法:
//===========================
document.writeln("
递归算法一:
");
//===========================
function factorial(x) {
if(x < 2)
return 1;
else
return x * factorial(x - 1);
}
document.writeln("10!=" + factorial(10));
document.writeln("
递归算法一:
");
//===========================
function factorial(x) {
if(x < 2)
return 1;
else
return x * factorial(x - 1);
}
document.writeln("10!=" + factorial(10));
法二:
还可在类的方法中执行递归,但这有点儿冒险。
在JavaScript中调用类的方法名来进行递归,会造成“Object Expected”错误。为避免这个错误,必须用方法的基本函数名或callee参数来执行递归。以清单D为基础,我在myMath类中添加了阶乘方法,如下所示。
在JavaScript中调用类的方法名来进行递归,会造成“Object Expected”错误。为避免这个错误,必须用方法的基本函数名或callee参数来执行递归。以清单D为基础,我在myMath类中添加了阶乘方法,如下所示。
document.writeln("
递归算法二:
");
递归算法二:
");
function myMath() {
//=======================================
this.result; //Result of method
this.factorial = myFactorial; //Factorial method
this.result; //Result of method
this.factorial = myFactorial; //Factorial method
function myFactorial(x) {
if(x < 2)
return 1;
else {
this.result = x * arguments.callee(x - 1);
if(x < 2)
return 1;
else {
this.result = x * arguments.callee(x - 1);
return this.result;
}
}
}
}
//=======================================
}
}
var math = new myMath(); // Create an instance
document.writeln("10! =" + math.factorial(10));
document.writeln("10! =" + math.factorial(10));
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 《代码大全 2 / Code Complete 2》at Google
- ASP.NET Atlas简单控件介绍——Sys.Component基类与Sys.UI.Control基类
- 使用os3grid做一个基于Web和Ajax的工资表录入界面
- 利用css里expression来实现界面对象的批量控制
- JBoss Seam 手册
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- LaTeX 与字体
- 选取合适的dHtml Grid方案
- CSDN社区散红包 积分兑换C币即可得SD2.0技术大会门票
- ITS-CMS 2.0 URL设计构想
- SharePoint:DataView如何绑定Web Service返回的主从表数据集
- 小道消息 sd2.0大会国外大师介绍
- Intel持续发力高性能 国内服务器厂商纷纷加盟
- Apache在Windows下使用Mod_rewrite模块