JavaScriptコールバック関数と再帰関数
1894 ワード
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