【JavaScript入門】クラスの定義方法 #2 プライベートメンバ(ES2015より前)

ES2015のclassが使えない環境で、前回はクラスの定義方法について基本的な部分を記載しました。(コンストラクタ・パブリックメンバの定義方法など)

今回は、プライベートメンバを使用してクラスを定義します。

プライベートメンバ

プライベートメンバとは、クラス内からのみアクセスできるメンバ(プロパティ・メソッド)のことです。

前回、this で定義したメンバは、パブリックメンバと言いクラス外からもアクセスすることができました。

Javaなどの言語をさわったことがある方は、クラスの変数はprivateで宣言し、変数への値の取得・設定は、getterやsetterなどのアクセサメソッドを使用した実装をよく見かけると思います。

JavaScriptでそのような実装を行うには、クロージャを使用します。

プライベートメンバの定義方法

定義したクラスのコンストラクタ内で、var を使用して定義したプロパティやメソッドは、プライベートメンバになります。

プロパティの定義例

メソッドの定義例(残り燃料の有効値チェック)

アクセサメソッドの定義方法

先ほど定義した残り燃料を表すプロパティ(remainingFuel)にクラス外から値を取得・設定したい場合は、アクセサメソッドを定義します。

クラス外からアクセスさせるので、this を使用して定義します。

また、命名規則として、取得は接頭辞として get 、設定は接頭辞として set をつけることが多いと思います。

アクセサメソッドの定義例(残り燃料)

これで、インスタンス変数からアクセサメソッドを呼び出して、残り燃料を取得・設定することができるようになります。

今までのメンバの宣言を合わせると次のようになります。

以上がプライベートメンバの定義方法になります。

厳密に変数へのアクセスを管理したい場合に効果を発揮すると思います。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする