JavaScriptでは、クラスも関数で表現できます(リスト20)。ここでは、変数Bookに空の関数リテラルを代入することで、クラスの役割を持たせています(1)。試しに、new演算子でBookクラスからインスタンスを生成してみましょう。このインスタンスをinstanceof演算子でチェックすると、Bookクラスのインスタンスであることを確認できます(2)。

リスト20●Bookクラスの定義とインスタンス化
[画像のクリックで拡大表示]

実用的なコンストラクタを定義する

 インスタンスを生成する際に呼び出される関数がコンストラクタです。Javaなどのクラスベースのオブジェクト指向言語を使ったことがある人にはおなじみの概念ですね。

 先ほどのBook関数は、正確には「クラスを定義するためのコンストラクタ」に相当します。

 もう少し具体的なBookクラスを実現するため、Bookコンストラクタに対し、書名を表す「title」と価格を表す「price」という2つのプロパティ、およびこれらの情報を文字列として出力する「toString」というメソッドを追加してみましょう(リスト21)。

リスト21●Bookコンストラクタにプロパティとメソッドを追加
[画像のクリックで拡大表示]

この先は会員の登録が必要です。有料会員(月額プラン)は登録月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら