JavaScriptのオブジェクトとは:ちゃんと理解してますか

白石俊平
2008/01/21 15:00

JavaScriptをより深く知りたい人のための当連載もいよいよ三回目。今回はJavaScriptにおけるオブジェクトとは何か?というお話をしたいと思います。

 前回は、JavaScriptにおける関数はオブジェクトであり、関数定義は「オブジェクトの作成」に他ならない、と言うお話でした。今回は、「では、JavaScriptにおけるオブジェクトとは何か?」というお話をしたいと思います。

JavaScriptオブジェクトとは「ハッシュテーブルのようなもの」

 オブジェクト指向言語における「オブジェクト」とは、「データと振る舞いをひとまとまりにしたもの」として説明されることが多いです。例えばJavaのオブジェクトは、フィールド(=データ)とメソッド(=振る舞い)から構成されます。

 しかし、JavaScriptにおける「オブジェクト」の概念は、ある意味それより遥かに単純です。なぜなら、誤解を恐れずいうならば、JavaScriptオブジェクトとは、単なる「ハッシュテーブル」のようなものとして捉えることができるからです(※1)。

 ハッシュテーブルとは、「キーと値の組み合わせ」でデータを管理する構造のことですね。JavaScriptオブジェクトにおいては、「キー」は変数名や関数名と言った文字列(※2)、「値」は変数や関数となります。実際のコードで確認してみましょう。

※1 実際は、ハッシュテーブルよりも遥かに複雑ですが、JavaScriptが値の解決に利用する「プロトタイプチェイン」などの仕組みは、連載のもう少し後でお話しします。
※2 キーは数値の場合もあります(配列ライクなオブジェクトのインデックスなど)。
記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
  • 新着記事
  • 人気記事
  • 特集
  • ブログ