BLOGTIMES
2007/07/17

JavaScriptの無名関数で再帰を使う

  programming  javascript 
このエントリーをはてなブックマークに追加

JavaScriptを書いていてふと無名関数中で再帰をやりたいと思ったのですが、実行中の関数オブジェクトへの参照の取得の仕方が分からずにハマりました。ウェブでちょっと調べてみたら、どうやらarguments.calleeというものを使うと取得できるようです。

家に帰ったてJavaScriptを調べてみたらp.124にちゃんと解説がありました。

7.4.2 calleeプロパティ
Argumentsオブジェクトのcalleeプロパティは、現在実行中の関数を参照します。calleeプロパティを利用すると、自分自身を再帰的に呼び出す名前のない関数が記述可能になります。例えば、階乗を計算する名前のない関数リテラルの例を紹介しましょう。
function(x) { if( x > 1 ) return x * arguments.callee(x-1); return x; }

calleeプロパティはJavaScript 1.2から導入されました。これより前のバージョンでは使用できません。

あんまりちゃんと勉強していなかったので関数中でargumentsというプロパティが使えることすら知りませんでした。これくらいJavaScripでは基本なんですね。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2109
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン