JavaScriptのイロハ:「関数はオブジェクト」って理解できますか?

白石俊平
2008/01/10 18:00

今回はJavaScriptの「関数はオブジェクトである」という概念について考えてみます。

  • 関数内で関数を定義することができる … (1)
  • 関数オブジェクトを戻り値にとることもできる
  • 関数内で定義された関数からは、ローカル変数を参照し続ける事ができる … (2)

 最後のポイントは非常に重要なので、覚えておいてください。このように、関数自身が定義された環境を、ローカル変数も含めて持ち運ぶことのできる仕組み (またはそうした関数自体) のことをクロージャと呼びます。

まとめ

 今回は「関数はオブジェクトだ」という話を中心に、以下のようなことを学びました。

  • 「関数宣言」の本質は「関数オブジェクトを変数に代入する」と言うこと
  • 無名関数
  • 関数オブジェクトを、関数の引数として利用する
  • 関数オブジェクトを、関数の戻り値として利用する
  • クロージャとは何か

 今回はなかなか盛りだくさんでしたね……

 しかし、関数についてはまだまだ説明しなければならないことが多くあります。それほど、JavaScriptの関数は奥が深いのです。JavaScriptの関数が持つ更なる機能については、今後の連載でお話しすることになると思います。楽しみにお待ちください。

 次回は、JavaScriptにおける「オブジェクト」について、詳しく突っ込んだ話をしてみたいと思います。

  • コメント(1件)

#1 D298  - 2008/01/19 12:25:08

関数がオブジェクト、という概念はC言語の関数ポインタになぞらえると理... 続きを見る
» 不適切なコメントを報告する
記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
  • 昨日のトップ記事
  • 2日前
  • 3日前
  • 4日前
  • 5日前
  • 新着記事
  • 人気記事
  • 特集
  • ブログ