JSにおける再帰実現
680 ワード
再帰関数とは、実行中に関数名で自分自身を呼び出します.
*
再帰的条件を構成する:子問題は元の問題と同じで、もっと簡単です. 再帰過程において、再帰的な輸出という明確な条件判断の終了が必要である.
function add(num){return num<0?num:num+add(num-1);}
console.log(add(4));//9
var addCopy = add;
add = null;
console.log(addCopy(4));// Uncaught TypeError:add is not a function
関数add
は、null
の値を付与する前に表面が問題ないように見えるが、関数add()
を変数addCopy
に保存した後、add
をnull
にセットし、結果として元の関数への参照は一つしか残っていない.addCopy()
を実行しなければならないので、add
はもう関数ではない.arguments.callee
を使用してこの問題を解決できます.*
arguments.callee
は実行中の関数ポインタであり、関数の再帰的呼び出しを可能にするために使用され得る.再帰的条件を構成する: