问题说明:比如求 10! 的结果 解决方法:有两种解法法一一般的做法=========================== document.writeln(br递归算法一br); =========================== 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类中添加了阶乘方法,如下所示。 document.writeln(br递归算法二br);
function myMath() {======================================= 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); return this.result; } }======================================= } var math = new myMath(); Create an instance document.writeln(10! = + math.factorial(10)); 详细解释 提高javascript代码的重用性, 推荐使用对象封装的方法来实现. 涉及技术:Web技术 作者:谭小鹏
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18