JavaScriptのオブジェクト指向:コンストラクタに関するありがちな誤解
白石俊平
2008/03/04 18:30
いよいよJavaScriptのオブジェクト指向機能についてです。筆者が抱いていたありがちな誤解を紹介しながら、そのさわりをお話ししましょう。
もちろん、可能です。コンストラクタ内で「this」演算子を用いることで、オブジェクトにメンバを追加することができます。下のコードは、Personのオブジェクトに以下のメンバを追加したものです。
function Person(name) {
// this演算子を用いて、メンバを追加
this.name = name;
this.hello = function() {
// this演算子を用いてメンバを参照
alert("こんにちは。私の名前は" + this.name + "です。");
};
}
// newしてメソッドを使用
var shiraishi = new Person("白石");
shiraishi.hello();
「this」キーワードは、実行中のコードが「自分自身」を表すオブジェクトにアクセスするためのキーワードです。「this.name = name;」や「this.hello = function()...」のようにすることで、自分自身に「name」と言う属性や「hello()」と言うメソッドを追加しています。
こうしてみると、「Person」は、Javaで言うところのクラスにだいぶ近づいてきましたね。そこで、本来JavaScriptには「クラス」と言う概念がないのですが、こうしたコンストラクタのことを「Personクラス」と呼ぶこともよくあります。
まとめと次回予告
今回は、オブジェクト指向言語としてのJavaScriptについて、ほんのさわりだけを説明しました。今回説明した方法は、フィールドやメソッドを持つJavaScriptオブジェクトを作成するためのもっとも基本的な方法です。
しかし、今回説明した方法でクラスにメンバを追加するのは、パフォーマンスなどの観点から見ると、実はあまり優れたものだとは言えません。次回はその欠点について説明した後、その欠点を改善するための「プロトタイプ」と言う仕組みについてお話しします。プロトタイプは、「継承」などの機能を実現する上でも非常に重要ですので、しっかり解説していきたいと思います。
- 特集: JavaScriptのイロハ (17件)
- 2日前のトップ記事
- 4日前
- 5日前
- 6日前
- 7日前
- ホワイトペーパー
- 読者投票
今、使っているマシンのOSは?
- 話題のタグ
リファレンス
Microsoft
server
仮想化
Tips
Webデザイン
Java
Windows
HTML
JavaScript
Firefox
Flash
iPhone 3G
iPod touch
Mac OS X
イロハ
Apache
開発環境
Internet Explorer
Ruby
SOA
Adobe
ブラウザ
Off Topic
MySQL
Safari
Ajax
C/C++
Webアプリケーション開発
Mozilla
Firefox 3
オープンソース
小技
ライブラリ
Linux
Solaris
Apple
XHTML
PHP
入門
Database
iPhone
Eclipse
RIA
Google
CSS
Leopard
Opera
フレームワーク
Python
話題のタグを見る »
フォトレポート:世界各国の優秀な技術者がパリに集結--Imagine Cup 2008世界大会
バッチ処理でデータベース活用:4つの課題と5つの解決ポイント
Rubyでどう書く?:RubyでWord文書を作成する
Adobe Acrobat 9--音声やクイズを埋め込んでeラーニング
ウェブ制作者が仲間と幸せに仕事をする方法:仲間との出会い
Excelで多用する雑多な操作を素早く片付けるための10のティップス(前編)
開発者のFirefox 3:非互換のアドオンをインストール
「未来の、その先」をどう提言していくか
DELL連載第4回〜「Microsoft System Center」
ZDNet Japan Green IT
今知るべき仮想化情報
Techno Exchange