BACK

HOOPSII MOBILE

HOME

38冊目 【JavaScript】[ECMAScript] オブジェクト指向のその他

今回はオブジェクト指向におけるちょっとしたプログラムごとについて解説をします。

目次

[1] カプセル化をしてみる

カプセル化とは、オブジェクトのデータ(プロパティ)、振る舞い(メソッド)の機能を隠すことです。
JavaScriptでは擬似的にこのカプセル化をすることができます。

プライベートプロパティを定義してみる
function Human(name){
	// パブリックプロパティ
	this.name = name;
	// プライベートプロパティ
	var blood = "O";
}

var hopsii = new Human("ほぷしぃ");

// プライベートプロパティに直接アクセスができない
document.writeln(hopsii.name);
document.writeln(hopsii.blood);

プライベートプロパティはvar宣言をつけて実行します。
ただ、このままだとプライベートプロパティを参照することができません。
定義されている(?)けど、直接参照できないことは確認できます。

プライベートプロパティを参照するメソッドを定義する

プライベートプロパティに直接アクセスすることができませんので
プライベートプロパティにアクセスするための機能(アクセサメソッド)を追加してあげます。

function Human(name){
	// パブリックプロパティ
	this.name = name;
	// プライベートプロパティ
	var blood = "O";

	// クロージャを定義する
	this.getBlood = function(){
		return blood;
	}

}

var hopsii = new Human("ほぷしぃ");
document.writeln(hopsii.getBlood());

このようにクロージャを使用してあげるとまるでカプセル化されたかのような動作を実現できます。
カプセル化は、var宣言した変数にアクセス用のメソッドを書くことにより実現ができます。

[2] 更新履歴

日付 詳細
2011/09/20 コンテンツ公開

Copyright (C) 2011 ほぷしぃ. All Rights Reserved.