JSの再帰関数

高洛峰
リリース: 2017-02-08 15:24:43
オリジナル
1566 人が閲覧しました

プログラミング言語では、関数 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 サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート