- blogs:
- cles::blog
2007/07/17

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 を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(114203)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112758)
3 . 年次の人間ドックへ(112212)
4 . 2023 年分の確定申告完了!(1つめ)(111777)
5 . 三菱鉛筆がラミーを買収(111656)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112758)
3 . 年次の人間ドックへ(112212)
4 . 2023 年分の確定申告完了!(1つめ)(111777)
5 . 三菱鉛筆がラミーを買収(111656)
cles::blogについて
Referrers