English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Javascript関数のarguments.calleeの使用例分析

本文実例で、Javascript関数のarguments.calleeの使用法について説明します。大話柄の皆さんに参考にして、以下の通りです:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
  <script type="text/javascript">
    //方法1、この方法では、関数名facが新しい関数を指すようになると、再帰的な階乗を実行することができません
//    function fac(num) {
//      if (num <= 1) {
//        return 1;
//      }
//      else {
//        return num * fac(num - 1);
//      }
    //方法2
    function fac(num) {
      if (num <= 1) {
        return 1;
      }
      else {
        return num * arguments.callee(num - 1);  //arguments.calleeは現在のメソッドの参照を示します
      }
    }
    window.onload = function () {
      var func = fac;
      fac = function () {  //新しい関数を指す
        return 1;
      }
      alert(func(5));  //、方法1を使用して出力5、方法2を使用して出力5の階乗値
      alert(fac(5));   //出力1
    }
  </script>
</head>
<body>
</body>
</html>

JavaScriptに関するさらに詳しい内容に興味がある読者は、以下の本サイトの特集をチェックしてください:《JavaScript配列操作の技術的ポイント》、《JavaScript数学演算の用法のポイント》、《JavaScriptデータ構造とアルゴリズムの技術的ポイント》、《JavaScriptの効果と技術的ポイントの総括》、《JavaScriptの検索アルゴリズムの技術的ポイント》、《JavaScriptのアニメーションと技術的ポイントの総括》、《JavaScriptのエラーとデバッグの技術的ポイントの総括》および《JavaScriptのリスト操作と技術的ポイントの総括》

この記事で述べたことが皆様のJavaScriptプログラムデザインに役立つことを願っています。

声明:本文の内容はインターネットからネットワークで提供され、著作権者に帰属します。インターネットユーザーが自発的に貢献し、自己でアップロードしました。本サイトは所有権を持ちません。また、人間による編集は行われていません。著作権侵害を疑われる内容がある場合は、以下のメールアドレスまでご連絡ください:notice#oldtoolbag.com(メールを送信する際は、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認がとりあえず、本サイトは即座に侵害を疑われるコンテンツを削除します。)

おすすめ