JavaScriptコールバック関数と再帰関数


JavaScriptコールバック関数:
関数のポインタを別の関数のパラメータとして使用します.この関数を呼び出すと、この関数はコールバック関数と呼ばれます.(ポインタで呼び出す)
function math(num1,num2,fun){
          return fun(num1,num2);
      }
      alert(math(1,2,bb));

      function bb(num1,num2){
        return (num1+num2)*2-1;
      }
      /*alert(math(1,2,funtion(){
        return (num1+num2)*2-1;
      }));*/
bb関数というポインタは、math関数のパラメータfunに伝えられ、funによって呼び出されます.
以上のようなコール方式は、複数の関数があると面倒なので、このような方式を採用します.
function math(num1,num2,fun){
          return fun(num1,num2);
      }
alert(math(1,2,funtion(){
        return (num1+num2)*2-1;
      }));
JavaScript再帰関数:再帰関数とは、関数の内部で直接または間接的に自分を呼び出すことです.
たとえば:
function aa(num1){
        if(num1>1){
          aa(--num1);
        }
        document.write(num1);
      }
      aa(4);//1123
解析:aa(4)が呼出した場合、外部のnum 1は4であり、入来関数判定、num 1--num 1位3がイジェクトされ、aa(3)が呼出された場合、外部のnum 1は3であり、入来関数判定、num 1--がイジェクトされ、aa(2)が呼び出された場合、外部のnum 1は2であり、入函数判定、num 1ビットがイジェクトされない場合はnum 1、num 1、num 1はnum 1、num 1、num 1、num 1、num 1が呼び出されます.今は呼出ごとの値が分かりますが、なぜ1123ですか?スタックやスタックに関するいくつかの知識は、スタックストレージプロセスは、スタックと呼ばれるので、先進的な後出と呼ばれる.a(4)は先にスタックに入り、a(3)、a(2)、a(1)は順次スタックに入ると、a(1)は最上階にあり、先進的な後出順はもちろんa(1)に対応する値が先にスタックから出て、順次類推するので、結果は1123となる.
function aa(num1){
        if(num1>1){
          aa(--num1);
        }
        document.write(num1);
      }
      aa(4);//1123*/
再帰関数の一例を見ています.階乗:
 function aa(num1){
          if(num1 == 1){
            return num1;
          }else{
            return num1*aa(--num1);
          }
      }
      alert(aa(4));//4*3*2*1=24