JavaScriptのオブジェクトとは:ちゃんと理解してますか
白石俊平
2008/01/21 15:00
JavaScriptをより深く知りたい人のための当連載もいよいよ三回目。今回はJavaScriptにおけるオブジェクトとは何か?というお話をしたいと思います。
前回は、JavaScriptにおける関数はオブジェクトであり、関数定義は「オブジェクトの作成」に他ならない、と言うお話でした。今回は、「では、JavaScriptにおけるオブジェクトとは何か?」というお話をしたいと思います。
JavaScriptオブジェクトとは「ハッシュテーブルのようなもの」
オブジェクト指向言語における「オブジェクト」とは、「データと振る舞いをひとまとまりにしたもの」として説明されることが多いです。例えばJavaのオブジェクトは、フィールド(=データ)とメソッド(=振る舞い)から構成されます。
しかし、JavaScriptにおける「オブジェクト」の概念は、ある意味それより遥かに単純です。なぜなら、誤解を恐れずいうならば、JavaScriptオブジェクトとは、単なる「ハッシュテーブル」のようなものとして捉えることができるからです(※1)。
ハッシュテーブルとは、「キーと値の組み合わせ」でデータを管理する構造のことですね。JavaScriptオブジェクトにおいては、「キー」は変数名や関数名と言った文字列(※2)、「値」は変数や関数となります。実際のコードで確認してみましょう。
※1 実際は、ハッシュテーブルよりも遥かに複雑ですが、JavaScriptが値の解決に利用する「プロトタイプチェイン」などの仕組みは、連載のもう少し後でお話しします。
※2 キーは数値の場合もあります(配列ライクなオブジェクトのインデックスなど)。
- 特集: JavaScriptのイロハ (16件)
- 今日のトップ記事
- 昨日
- 3日前
- 4日前
- 5日前
- 7日前
- ホワイトペーパー
- 話題のタグ
MySQL
Firefox 3
Adobe
Ajax
HTML
Leopard
Safari
Linux
IDE
仮想化
ブラウザ
Tips
イロハ
PHP
フレームワーク
ライブラリ
Apache
Ruby on Rails
Eclipse
Mac OS X
Internet Explorer
Apple
XHTML
Windows
iPod touch
Google
Firefox
入門
Ruby
JavaScript
CSS
リファレンス
SOA
まとめ
Off Topic
Database
Flash
小技
C/C++
Java
RIA
オープンソース
iPhone
Webデザイン
server
開発環境
Microsoft
Mozilla
Webアプリケーション開発
Python
話題のタグを見る »
仮想化Java環境のスループットを2倍に--BEA LiquidVMの適応型メモリ管理
Firefox 3が対応したdisplayプロパティの値(3) - inline-table
MSもアドビも学生さんに開発ソフトを無償提供
「Economist」のトップページがリニューアル
あなたがプログラムを理解できない10の理由:第2回
新APIまもなく登場--Google Developer Day 2008の見所とは?
リスティング広告における競争優位性の維持
-Simplify IT- ITをシンプルに 連載第2回
内部統制対策を実現するIT運用管理ツール