遞迴演算法在javascript中使用的小技巧 (javascript的對象封裝方法介紹)

來源:互聯網
上載者:User

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));

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.