欢迎访问:常州市武进区嘉泽中心小学网站 !今天是:
栏目列表
您现在的位置是:首页>>教师>>计算机技术>>网站制作技术>>文章内容
递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
发布时间:2008-11-20   点击:   来源:本站原创   录入者:佚名
  By Ben


比如求 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));

附件:
    关闭窗口
    打印文档
    账号登录
    保持登录 忘记密码?
    账号与武进教师培训平台同步