您的位置:首页 > Web前端 > JavaScript

递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)

2008-03-11 09:49 941 查看
By Ben

比如求 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类中添加了阶乘方法,如下所示。 document.writeln("
递归算法二:
");
 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));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐