ホームページ  >  記事  >  ウェブフロントエンド  >  JSの再帰関数

JSの再帰関数

高洛峰
高洛峰オリジナル
2017-02-08 15:24:431572ブラウズ

プログラミング言語では、関数 Func(Type a,...) が関数自体を直接的または間接的に呼び出す場合、その関数は再帰関数と呼ばれます。再帰関数をインライン関数として定義することはできません。

再帰関数:

function factorical(num){
  if(num<=1){
    return 1;
  }
  else{
    return num*factorical(num-1);
  }
}
factorial(2)//2

この再帰関数は関数を使用して関数自体を呼び出しますが、これは本当に良いのでしょうか?ここで見てみましょう

var another=factorical;
factorical=null;
console.log(another(2))//会报错说 factorical not a function

これが関数の呼び出し方法です。 a 関数の欠点、解決方法は以下を参照してください

function factorical(num){
  if(num<=1){
    return 1;
  }
  else{
    return num*arguments.callee(num-1);
  }
}
var another=factorical;
factorical=null;
console.log(another(2))//2

関数がどのように呼び出されても問題が発生しないようにするには、上記の関数名の代わりに argument.callee を使用します。

上記は編集者があなたに紹介した JS の再帰関数です。ご質問があればメッセージを残してください。編集者がすぐに返信します。また、PHP 中国語 Web サイトをサポートしていただきありがとうございます。

JS の再帰関数に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。