JavaScriptクラス作成方法:とりあえずまとめ

白石俊平(あゆた)
2008-03-14 18:00:00
  • このエントリーをはてなブックマークに追加

属性のデフォルト値

 ここからは、クラスを作るに当たって知っておくと何かと便利な知識です。

 今回作成したPersonクラスは、年齢を表すageプロパティを持つことにします。そしてageプロパティは、値が設定されていないときは「設定されていない」ことを表す-1という値をとるようにしましょう。

 これは、以下のようにコンストラクタを修正すれば実現できることはすぐお解りでしょう。

function Person(name) {
  this.name = name;
  // あらかじめageには-1をセットしておく
  // 値を再設定されなければ、ageの値はこのまま
  this.age = -1;
}

 しかし、これよりももっと良い方法があります。今回の要件は、「オブジェクトに値が存在すればその値、そうでない場合はデフォルト値」になればよいと言うこと。これは、プロトタイプを使用すれば簡単に実現できます。

Person.prototype.age = -1;

静的メンバ

 「静的メンバ」とは、Javaなどでいうところのstaticメンバのこと。厳密な意味では、JavaScriptで静的メンバに相当するものはありません。ですが、「クラス名.変数名」や「クラス名.メソッド名」といった形でアクセスできるような、「static変数に似たもの」を作ることは可能です。

 作り方は簡単です。先ほどの「年齢が設定されていない時のデフォルト値(-1)」を表す値を、「Person.AGE_UNKNOWN」という形式で参照できるようにしてみましょう。

Person.AGE_UNKNOWN = -1;

 コンストラクタといえども、単なる関数オブジェクトですので、プロパティとして値を設定してしまえばよいのです。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]